小编cai*_*ujo的帖子

OAuth2 中的“资源所有者密码凭据”是否安全?

所以,我正在开发一个使用和管理OAuth2连接的API。OAuth2 会很有用,因为我需要在服务之间使用客户端凭据授权slim/slimleague/oauth2-server

然后,我也在用React Native开发一个混合应用程序。此应用程序将要求用户使用电子邮件和密码登录或连接其他服务(如 Facebook、Google、Twitter 等)。

我对在这种情况下使用什么 OAuth2 流程感到困惑。网络上有很多文章说Resource Owner Password Credentials不再安全,我们应该使用PKCE 的 Authentication Code 来代替

但是我无法发现或理解如何在第一方应用程序中使用 PKCE 应用身份验证代码,因为所有关于您的文档都需要使用浏览器来获取redirect_uri.

我想象的流程是这样的:

  1. 用户打开应用程序,然后插入您的凭据usernamepassword
  2. 此屏幕将连接到 API /request_tokenURI 发送{ 'grant_type': 'password', 'username': username, 'password': password, 'client_id': CLIENT_ID },将其视为我们无法发送的公共应用程序client_secret
  3. API 验证凭据并返回一些数据,例如{ "access_token": access_token, "token_type": "JWT", "expires_in": LIFE_SPAN },这里我们将使用JWT来生成access_token基于public/private key;
  4. 身份验证完成后,应用程序将access_token在它处于活动状态时存储它,当它到期时将流向 …

oauth-2.0

6
推荐指数
1
解决办法
1191
查看次数

标签 统计

oauth-2.0 ×1