首页 > 解决方案 > 如何将 OAuth2 与后端​​和前端集成

问题描述

我正在学习 OAuth2 以集成第三方提供商,如 Facebook 或 Github。但是,当您构建具有后端和前端的应用程序时,我正在努力寻找描述如何集成它的资源。

在这个例子中,我们假设有一个前端(myfrontend.com)运行类似 Vue.js 的东西。mybackend.com还有一个运行 Django 之类的后端 ( )。还有像 GitHub 这样的第三方提供商。

我的想法是使用这个流程:

  1. 前端重定向到提供者授权 url。例子:https://github.com/login/oauth/authorize?client_id=<client_id>&redirect_uri=https://mybackend.com/callback?return-to=https://myfrontend.com/home

  2. 如果用户授权,后端接收code./callback

  3. 后端发送身份验证请求(服务器端)code以到达access_token第 3 方提供商。

  4. 如果用户尚不存在,后端将创建一个用户并保存与该用户关联的 access_token。

  5. 后端为用户创建一个新的本地令牌(用于对 mybackend.com 进行身份验证)(JWT 或 OAuth2)。

  6. 后端https://myfrontend.com/home使用正文中的令牌重定向到(在第一个 url 中指定)。

  7. 前端接收令牌并保存在本地存储中。

  8. 当前端代表用户需要来自 GitHub 的资源时,会向我的后端发送一个请求,后端又使用 save access_token 并从 GitHub 请求资源。

我的问题是这样的:

标签: djangoauthenticationoauth-2.0jwt

解决方案


推荐阅读