美文网首页网络与信息安全
JWT(JSON Web Token)认证机制

JWT(JSON Web Token)认证机制

作者: Daryl_Xu | 来源:发表于2019-04-19 15:17 被阅读13次

    JWTJSON Web Token的缩写。我们用大写的JWT表示这种认证机制,我们用小写的jwt来表示JWT机制中的生成的tokenjwt是一个字符串

    阮一峰老师的文章非常清楚地介绍了如何生成jwt这个token
    http://www.ruanyifeng.com/blog/2018/07/json_web_token-tutorial.html

    拜读了阮一峰老师的文章,我知道了jwt不仅是一个token,它还是一个包含了其他信息的token
    看了文章底下的评论,甚是精彩!我觉得该文还需要一些补充

    认证流程

    一:申请凭证jwt

    1. 客户端发送账号和密码给服务器
    2. 服务器查询数据库,认证成功后服务器返回凭证jwt

    为了防止伪造,需要确保jwt只能由服务端生成,实现方法阮一峰老师的文章有讲

    二:拿着凭证jwt访问服务器

    1. jwt放到HTTP请求头的Authorization字段里【当然可以放在其他位置,只要确保服务器可以拿到】
    2. 服务器拿到客户端提交的jwt之后,通过对jwt里的字段进行签名运算来验证这个jwt是否有效

    签名运算只需要用到服务器的secretjwt里的其它信息【这样就不需要去查询数据库了】

    总结

    使用JWT认证,服务器变成无状态了,从而比较容易实现扩展。
    JWT的最大缺点,由于服务器不保存session状态,因此无法在使用过程中废止某个token,或者更改 token的权限。也就是说,一旦JWT签发了,在到期之前就会始终有效,除非服务器部署额外的逻辑。
    说一句套话但绝对不是空话:还是需要根据实际应用场景选用认证方式的

    使用案例

    公司有一个对外提供的服务,用gRPC实现,用户身份验证的时候使用了JWT

    扩展阅读

    OAuth2简单解释
    OAuth2的四种授权方式

    技术博客迁移

    技术博客已迁移到:
    https://ziqiangxu.github.io/blog/

    相关文章

      网友评论

        本文标题:JWT(JSON Web Token)认证机制

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