【问题标题】:How to get user details using JWT token如何使用 JWT 令牌获取用户详细信息
【发布时间】:2018-08-12 11:08:02
【问题描述】:

我使用 Angular 5 前端和 django 作为后端。我使用 JWT 令牌在 django 和 angular 之间进行通信。如何使用令牌在后端获取登录的用户详细信息。

EG:

class PostSerializer(ModelSerializer):
class Meta:
model = PostDetail
fields = [
'title',
'upvote',
]

这里的 upvote 是一个多对多字段,包含所有投票的用户列表。我想再添加一个字段“user_vote_status”来检查登录用户的投票状态。

我该如何解决这个问题,请帮助我。

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    你可以通过这种方式在任何django视图中获取usernamec

    @api_view(['POST'])    
    def apiname(request):
        username = request.user.username
    

    从角度前端,您需要在标头中发送 jwt 令牌

    Authorization: JWT "token"
    

    【讨论】:

      【解决方案2】:

      来了。 JWT 由以“.”分隔的三部分组成。中心部分包​​含用户详细信息。因此,您可以通过拆分来获得它,并使用 window.atob 解码该部分

      function getUserInfo() {
        const token = getToken();
        let payload;
        if (token) {
          payload = token.split(".")[1];
          payload = window.atob(payload);
          return JSON.parse(payload);
        } else {
          return null;
        }
      }
      
      function getToken() {
        return localStorage.getItem("jwt-token");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-05
        • 2020-01-01
        • 1970-01-01
        • 2016-11-29
        • 1970-01-01
        • 2021-02-15
        • 2021-12-13
        • 2021-08-14
        相关资源
        最近更新 更多