使用jwt和rsa非对称加密无状态登陆

首先,说一下大概的流程。算法

   用户登陆时,会将页面输入的帐户密码传入对应的微服务中,而如今微服务中尚未当前用户的认证,由此微服务再转发给注册中心,注册中心再访问用户中心,用户中心经过调取数据库中的信息,数据库

对传过来的信息进行核对,核实正确后使用非对称加密造成一个公钥与私钥,私钥本身保存,公钥分发给各个微服务,而后用户再次登陆时,当前的微服务就拥有公钥,经过公钥解密就能够验证用户微服务

是否正确。正确就放行经过。加密

  jwt含有三个部分,分别是Header,载荷,签名。spa

  header:包含有jwt 当前的声明的定义,还有base64算法。jwt

  载荷:主要存放当前的有效信息。token

  签名:主要是对header与负载中的有效信息使用密钥加密生成token。it

 

  

  • 受权流程:base64

    • 一、用户请求登陆,携带用户名密码到受权中心class

    • 二、受权中心携带用户名密码,到用户中心查询用户

    • 三、查询若是正确,生成JWT凭证

    • 四、返回JWT给用户

  • 鉴权流程:

    • 一、用户请求某微服务功能,携带JWT

    • 二、微服务将jwt交给受权中心校验

    • 三、受权中心返回校验结果到微服务

    • 四、微服务判断校验结果,成功或失败

    • 五、失败则直接返回401

    • 六、成功则处理业务并返回

相关文章
相关标签/搜索