前后端分离统一身份认证流程?

我理解的是首先在访问地址的时候,后端重定向到第三方的服务器,这个网站是如果没有登录是不能使用任何功能的,然后在第三方页面完成登陆后,第三方的地址后面有类似于Redirecturl的参数,如果登录成功,就会重定向回这个地址,并且设置cookie,然后我们自己的后端拿到cookie去第三方服务器验证合法性,如果合法,就提供服务。这是我的理解,不知道对不对。请指教

阅读 1.2k
avatarAI BotBETA

前后端分离统一身份认证流程如下:

  1. 前端发起请求时,携带登录凭证(通常是Cookie)和访问地址;
  2. 后端接收到请求后,通过请求头验证登录凭证;
  3. 如果登录凭证合法,后端将重定向到第三方服务器进行身份验证;
  4. 第三方服务器验证登录凭证并返回验证结果;
  5. 后端接收到验证结果后,将重定向回原始访问地址,并设置相应的Cookie;
  6. 前端接收到重定向后的地址后,将自动携带新的登录凭证(通常是Cookie);
  7. 后端接收到携带新登录凭证的请求后,验证登录凭证并返回相应的服务。

你的理解基本正确,但需要注意以下几点:

  1. 登录凭证通常不是直接在请求头中携带的,而是通过请求参数或查询字符串等方式传递给后端;
  2. 第三方服务器通常使用授权码或认证令牌等方式进行身份验证,而不是直接返回登录凭证;
  3. 后端在重定向回原始访问地址时,应该使用相对路径或绝对路径来重定向,以确保浏览器能够正确解析地址。
2 个回答

你的理解没问题:
1695093420725.png
企业微信截图_16950942341779.png

或者你在找OAuth 2.0授权流程?

sequenceDiagram
    participant RO as 资源所有者
    participant C as 客户端
    participant S as 服务(API)
    C->>RO: 请求授权
    RO-->>C: 授权凭证
    C->>S: 使用授权凭证请求访问令牌
    S-->>C: 访问令牌
    C->>S: 使用访问令牌请求资源
    S-->>C: 资源
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题