无状态登录原理

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_42147250/article/details/102503940

有无状态登录,相对应的就会有有状态登录.

什么是有状态登录?

  有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session.

例如:用户登录后,我们把登录者的信息保存在服务端的session中,并且给用户一个cookie值,来记录对于的session,然后下次请求的时候,用户携带cookie来,我们就能识别到session中的用户的信息。

   有什么缺点呢?

  1.服务端保存大量数据,增加服务端压力。

  2.服务端保存用户信息,无法水平扩展。

  3.客户端依赖服务端,多次请求必须访问同一台服务器

什么是无状态登录?

  微服务集群中的每个服务,对外提供的rest风格的接口,而rest风格的一个最重要的规范就是:服务的无状态性。即:

    服务端不保存任何客户端请求者的信息。

    客户端的每次请求都必须具备自述信息,通过这些信息识别客户端身份。

带来的好处:

    客户端的请求不依赖服务端,每次请求不需要访问同一台服务器

    减小服务端的存储压力

    服务端的集群和状态对客户端时透明的

    服务端可以任意的迁移和伸缩

如何实现无状态登录.

  无状态登录流程:

          当客户端第一次登录的时候,服务端对用户进行信息认证。(登录)

          认证通过,将用户信息进行加密形成token,返回给客户端,作为登录凭证。

          以后每次的请求,客户端都携带认证的token。

          服务端对token进行解密,判断是否有效。

猜你喜欢

转载自blog.csdn.net/qq_42147250/article/details/102503940