美文网首页用户验证与授权
用户验证三部曲3 - JWT

用户验证三部曲3 - JWT

作者: elef | 来源:发表于2018-12-14 11:39 被阅读38次

    JWT

    • JSON Web Token
    • 采用非对称算法(公钥私钥)进行签名
    • Todo API(业务API)可独立对JWT进行验证,无需调用用户API
    • 包含角色信息

    jwt由三部分组成:
    头部(header)
    载荷(jwt body) 包含一些定义信息和自定义信息
    签证(signature)

    JWT HEADER
    {
      "typ": "JWT",         //声明类型为jwt
      "alg": "RS256"       //声明签名算法为RS256
    }
    
    JWT BODY
    {
        "iss": "notepad2.cn",  // jwt签发者
        "exp": 1525318201,  //jwt的过期时间,过期时间必须要大于签发时间
        "aud": "dbbc404a-025c-4bc0-a33d-b045372d27e4",   //接收jwt的一方
        "sub": "22631ce9-a208-4495-866f-efae81bd044a",   //可以认为是用户ID
        "name": "张三",
        "role": [
            "RETRIEVE_TODOS"
        ]
    }
    
    JWT 签名
    RS256(
      base64UrlEncode(header) + "." + 
      base64UrlEncode(payload),
      privateKey
    )
    

    客户端在向 Todo API 发送查询请求时,需要携带JWT(一般是在header中),后台接收到JWT,采用公钥进行校验JWT的有效性,找出相关字段,编写SQL语句

    -- 查询用户待办SQL语句
    select * from todo where user_id = '22631ce9-a208-4495-866f-efae81bd044a'
    

    粘贴点代码

    后他API代码:验证JWT有效,验证角色信息
    HTTP表头中读取JWT
    采用公钥验证JWT

    相关文章

      网友评论

        本文标题:用户验证三部曲3 - JWT

        本文链接:https://www.haomeiwen.com/subject/gjgwhqtx.html