美文网首页
JWT(JSON Web Tokens) 用户认证

JWT(JSON Web Tokens) 用户认证

作者: snow4web | 来源:发表于2018-08-14 21:36 被阅读41次

    本文介绍 Web 应用中实现用户认证的一种新方式 JWT(JSON Web Tokens) 。

    由于工作需要最近返修一个 Web 项目的restfull api服务端。考虑到这个应用涉及到不同的客户端有pc端,ios app,和小程序,不得不重新设计服务端的架构。

    老系统用户认证采用的是session的方式来实现用户认证,存在几个问题。

    1. api server是分布式的, 存在多个server, 用户在一个 server 上登录了,下一次请求可能访问到另外一个server,这个时候无法去读到session。
    2. 客户端 使用 restfull api 来获取数据, restfull api 的原则是 stateless, 但使用 session, 使用 session 和 cookies 会引入 state; 另外, 当 API server 与 app server 可能是两个 server, 需要 允许 CORS(Cross-Origin Resource Sharing), 但是 cookies 只能在同一个 domain 中使用。
    3. app 可能需要访问很多个server,每个server都必须要设置cookie。

    解决办法: 使用 JWT 方式来验证用户

    JWT 方案不使用 session 基于 token.用户注册之后, 服务器生成一个 JWT token返回给浏览器, 浏览器向服务器请求
    数据时将 JWT token 发给服务器, 服务器用 signature 中定义的方式解码
    JWT 获取用户信息.


    jwt

    一个 JWT token包含3部分:

    1. Header: 指定加密算法和 token 类型
    2. Payload: 必须使用 sub key 来指定用户 ID, 还可以包含其他业务信息如用户名,权限。
    3. Signature: 用来加密Header和Payload生成签名。

    未完待续。。。

    相关文章

      网友评论

          本文标题:JWT(JSON Web Tokens) 用户认证

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