首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现OAUTH2最佳实践

实现OAUTH2最佳实践
EN

Stack Overflow用户
提问于 2022-05-21 14:31:44
回答 2查看 218关注 0票数 1

我正在尝试构建OAUTH2提供者(比如discord/google),用户可以在其中创建一个具有client_idclient_secret的“应用程序”。在我研究的时候,我发现OAUTH2最适合做这种事情。

现在让人困惑的部分是主登录页面是如何工作的?

我是否也有自己的/login路由页面和POST /login来处理自己的用户,这样我就有两个表:

API

  • OAuthSession

  • MyOwnSession-这将保持我自己的平台发布的访问令牌完全优于api/oauth2/token!!)

-向第三方应用程序发出的令牌(跟踪client_id,以及它们拥有的scope )(由api/oauth2/token!!)发布)。

然后,像/api/user这样的受保护的路由将检查Authorization: Bearer <access_code>并检查两个表,以确定这是否是有效的访问令牌(有点冗余吗?)

因此,我很确定我将如何为客户端(第三方)实现OAuth2流,但我非常困惑主平台(OAUTH2应用程序)如何处理会话(允许用户更改密码和创建新的客户机/应用程序)。

有小费吗?谢谢!

编辑:

好的,根据我的发现,这类事情没有真正的定义。

例如,不和谐有POST /login,他们发送用户名+密码,并处理所有其他2FA。

并分别处理OAUTH2。

因此,简而言之,当您构建自己的OAUTH2服务器/提供者(例如。你想成为谷歌帐户/不和谐)来处理你自己的登录,你可以用任何你想做的方式,然后oauth2路由只能被其他客户使用(第三方?)

现在我正在为我自己的项目做反应-前端,我也想拥有access_tokenrefresh_token来获得更多的安全性!但是我不认为与OAUTH2-tokens共享同一个表是明智的,因为我的tokes将具有完全的权限,而oauth2令牌的作用域仅限于其他应用程序(客户端、第三方)的请求。

在我的后端中,检查访问令牌是否有效的最好方法是什么?我猜如果存在access_token,请检查这两个表?或者尝试将它们都放在一个表中(或者使用UNION同时获得两者)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-26 05:07:40

正如前面在我的编辑中提到的,两个表策略似乎是最好的(遵循不和谐的做法)。

现在没有必要使用联合或两个选择,我们只能有多个token_type,例如:不和谐有:

  • Bot
  • User
  • Bearer

基于令牌类型,我们知道如何验证提供的access_token

OAuth2应该只考虑给予第三方访问权,我们自己的登录应该以最适合我们的应用程序的方式构建。

Bearer可以是OAuth2发布的类型,而当用户实际登录到我们的平台(而不是第三方)时,User可能是令牌。

很肯定这是唯一的答案。

票数 1
EN

Stack Overflow用户

发布于 2022-05-22 11:43:36

MyOwnSession -这将保留我自己的平台发布的访问令牌,完全正确地通过API。

OAuthSession -颁发给第三方应用程序的令牌(跟踪client_id及其范围)(由api/OAuth2/token!)

你真的需要单独的代币吗?您的应用程序将充当OAuth2提供者,并可以向您的应用程序和第三方客户端发出具有不同客户ids的令牌。您可以根据客户端ids控制访问权限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72330486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档