相关疑难解决方法(0)

是否使用魔术(我/自己)资源标识符违反REST原则?

我已经看到了为经过身份验证的用户支持魔术ID的URI,如下所示:

GET /user/me - list my profile
GET /user/me/photos - list my photos
Run Code Online (Sandbox Code Playgroud)

下面的那些使用实际的用户ID

GET /user/742924
GET /user/742924/photos
Run Code Online (Sandbox Code Playgroud)

我看到的问题是,相同的资源ID指向不同的资源,具体取决于经过身份验证的用户.

这违反任何REST原则吗?

rest web-services restful-url

16
推荐指数
2
解决办法
3384
查看次数

在RESTful和无状态方面使用/ currentUser等REST资源是否合法?

在RESTful和无状态方面,拥有类似资源是非常合法的

/用户/ 123

但是,问题是:拥有省略用户ID的资源并假设它在用户会话中在服务器上隐式解析是合法的吗?例如:

/ loggedUser

当具有标识符123的用户被授权时,该资源将指向/ users/123.

rest restful-url

6
推荐指数
1
解决办法
1213
查看次数

如何在 Nest.js 中获取用户信息?

我正在使用 Angular+Nest 开发一个网站。我创建了一个服务(Angular),以便客户端可以在项目启动时从服务器获取用户信息(与新鲜相同)。有些动作不需要登录,所以登录是可选的。

我想要的是如果用户已经登录,那么客户端应该发送一个请求来获取用户的信息。

服务器代码如下:

export const RequestUser = createParamDecorator((data, req): RequestUserDTO => {
    return req.user;
});

@Controller('auth')
export class AuthController {
  @Get('getUserInfoByToken')
  async getUserInfoByToken(@RequestUser() user: User): Promise<any> {
    if (user) {
      return {
        nickname: user.nickname,
        level: user.level
      };
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,我发现如果我不添加@UseGuards(AuthGuard())为装饰器,就没有任何回报。但是如果我添加它,当项目开始时,这个请求401作为状态代码返回。然后网页将转到登录页面。

我应该怎么做才能避免这种情况?并非每个操作都需要登录。

angular nestjs

4
推荐指数
2
解决办法
6763
查看次数

标签 统计

rest ×2

restful-url ×2

angular ×1

nestjs ×1

web-services ×1