当前位置: 首页 > 知识库问答 >
问题:

使用自己的oAuth2实现时,使用oAuth2安全服务器连接到第三方rest api

班承德
2023-03-14

我的一位同事实现了访问api所需的授权代码流,我们将access和refresh_tokens基本存储在数据库中以访问这个第三方api。但是感觉不对,我也找不到任何最佳的做法,有谁能帮我吗?

共有1个答案

都阳
2023-03-14

您的同事实现的是非常典型的:将您自己的应用程序(您使用Firebase管理)的身份验证和授权与授权您使用第三方API的用户分离开来。

以下是您在实现OAuth流时应该遵循的一些最佳实践:

  • 使用state参数来避免CSRF攻击。将其存储在数据库中,并将回调状态与您为用户随机生成的状态进行比较
  • 加密访问和刷新令牌。刷新令牌特别提供长期访问
  • 验证您要求的作用域是返回的作用域:某些提供程序允许用户调整权限,这可能导致意外错误
  • 请确保刷新令牌不会过期。检查提供程序的文档,查看刷新令牌是如何取消授权的。有些是基于时间的,有些是基于发出的新刷新令牌的,但无论如何,请确保刷新令牌保持有效,如果它不是有效的,则必须让用户重新授权您的应用程序
 类似资料:
  • 我试图连接SMTP使用Oauth2为Gmail,但得到以下问题。 Oauth令牌和电子邮件名称正确,可用于连接IMAP。 我正在效仿google。

  • 问题内容: 我正在使用OAuth2.0在PHP中设计API。我的最终目标是用javascript(使用AngularJS)构建可直接访问此API的前端应用程序。我知道,传统上无法用javascript保护交易,因此直接访问API是不可行的。前端需要与服务器代码进行通信,而服务器代码又直接与API进行通信。但是,在研究OAuth2时,似乎好像是在设计User- Agent Flow来帮助解决这种情况

  • 我正在尝试在nodeJS中实现一个OAUTH2服务器,它允许客户端应用程序登录使用我网站的用户(比如用google登录,在我的例子中是amazon alexa,它使用这个API/客户端应用程序)。 我尝试使用oauth2orise(https://www.npmjs.com/package/oauth2orize),并引用了几个链接:- https://hnryjms.io/2014/07/oau

  • 参考https://msdn.microsoft.com/en-us/office/office365/api/use-outlook-rest-api。我仍然无法理解广告、Outlook和windows Live。 我从https://login.microsoftonline.com/common/oauth2/v2.0/authorize https://login.microsoftonl

  • 这是一个独立的多线程核心java应用程序,它使用httpclient-4.0-beta1.jar进行连接。 当尝试连接到客户端url时出现以下异常,我需要发送请求。 我使用下面的配置通过shell脚本运行这个,一开始我尝试用代理执行,但之后我也配置了代理,但仍然存在同样的问题。任何在thsi方面的帮助都将非常感谢。

  • 谁能帮我举一个Spring Boot应用程序的例子,该应用程序包含一个Rest服务,endpoint受Spring Security性保护,使用oAuth2和来自MySQL数据库的用户凭据?