应该从params中传递和获取id,还是应该从JWT token中获取?

问题描述 投票:0回答:1

当用REST方式建模时,我们使用分层模式。我们使用分层模式。

我将建立我的 User 源于 /users 和用户的个人资料在 /users/:id/profile

此外,用户必须使用令牌进行认证才能访问其个人资料。在这里,JWT.

所以,我也可以这样建模 /useruser/profile.

我有这个困惑很久了,但同时有一种直觉,第一种更好。

我应该从params还是从JWT token中传递和获取id?

rest url jwt
1个回答
0
投票

另一个选择是在 uri(usersselfprofile)中使用 "self"。我通常创建一个api,从params(user{id}profile)中获取id,然后为那些不想发送id的客户端写一个中间件,并为他们从JWT token中读取userid。

我放了一些代码来更好地解释我的意思.例如我们有这样的api。

[HttpGet("users/{userId}/profile")]
public IHttpActionResult GetProfile(long userId)
{

}

我们可以像这样调用api: users1profile

然后我有这个中间件。

public class SelfRequestMiddleware
{
    public void Invoke()
    {
        // input : /users/self/profile
        // output : /users/1/profile

        if(Uri.Split('/').Contains("self"))
            Uri.Replace("self",UserId); // Get User Id From Token
    }
}

现在,我们可以用两个uri调用这个api。

users1profile

用户自我介绍

而这取决于客户端如何调用api。

© www.soinside.com 2019 - 2024. All rights reserved.