Session跨域认证方案,是否堪称设计上的典范?

2026-05-22 15:500阅读0评论SEO问题
  • 内容介绍
  • 相关推荐

本文共计3178个文字,预计阅读时间需要13分钟。

Session跨域认证方案,是否堪称设计上的典范?

用户登录认证是Web应用中非常常见的业务,一般流程如下:

+ 客户端向服务器端发送用户名和密码+ 服务器端验证用户名和密码是否正确+ 验证通过后,在服务器端会话(session)中保存相关数据+ 例如:登录

用户登录认证是 Web 应用中非常常见的一个业务,一般的流程是这样的:

  • 客户端向服务器端发送用户名和密码
  • 服务器端验证通过后,在当前会话(session)中保存相关数据,比如说登录时间、登录 IP 等。
  • 服务器端向客户端返回一个 session_id,客户端将其保存在 Cookie 中。
  • 客户端再向服务器端发起请求时,将 session_id 传回给服务器端。
  • 服务器端拿到 session_id 后,对用户的身份进行鉴定。

单机情况下,这种模式是没有任何问题的,但对于前后端分离的 Web 应用来说,就非常痛苦了。于是就有了另外一种解决方案,服务器端不再保存 session 数据,而是将其保存在客户端,客户端每次发起请求时再把这个数据发送给服务器端进行验证。JWT(JSON Web Token)就是这种方案的典型代表。

一、关于 JWT

JWT,是目前最流行的一个跨域认证解决方案:客户端发起用户登录请求,服务器端接收并认证成功后,生成一个 JSON 对象(如下所示),然后将其返回给客户端。

{ "sub": "wanger", "created": 1645700436900, "exp": 1646305236 }

客户端再次与服务器端通信的时候,把这个 JSON 对象捎带上,作为前后端互相信任的一个凭证。

阅读全文

本文共计3178个文字,预计阅读时间需要13分钟。

Session跨域认证方案,是否堪称设计上的典范?

用户登录认证是Web应用中非常常见的业务,一般流程如下:

+ 客户端向服务器端发送用户名和密码+ 服务器端验证用户名和密码是否正确+ 验证通过后,在服务器端会话(session)中保存相关数据+ 例如:登录

用户登录认证是 Web 应用中非常常见的一个业务,一般的流程是这样的:

  • 客户端向服务器端发送用户名和密码
  • 服务器端验证通过后,在当前会话(session)中保存相关数据,比如说登录时间、登录 IP 等。
  • 服务器端向客户端返回一个 session_id,客户端将其保存在 Cookie 中。
  • 客户端再向服务器端发起请求时,将 session_id 传回给服务器端。
  • 服务器端拿到 session_id 后,对用户的身份进行鉴定。

单机情况下,这种模式是没有任何问题的,但对于前后端分离的 Web 应用来说,就非常痛苦了。于是就有了另外一种解决方案,服务器端不再保存 session 数据,而是将其保存在客户端,客户端每次发起请求时再把这个数据发送给服务器端进行验证。JWT(JSON Web Token)就是这种方案的典型代表。

一、关于 JWT

JWT,是目前最流行的一个跨域认证解决方案:客户端发起用户登录请求,服务器端接收并认证成功后,生成一个 JSON 对象(如下所示),然后将其返回给客户端。

{ "sub": "wanger", "created": 1645700436900, "exp": 1646305236 }

客户端再次与服务器端通信的时候,把这个 JSON 对象捎带上,作为前后端互相信任的一个凭证。

阅读全文