我是 oAUth2 的新手,我正在努力弄清楚一些事情。
我了解 oAuth2 涉及的基本原理,但我不确定如何在我的情况下实现它。
我正在编写一个应用程序,它代表用户自动执行手动流程并执行一些任务(更新/请求状态...等)。我们连接的 API 使用 oAuth2 来授予我们的应用程序权限。我们计划让用户在我们创建新帐户时授予我们的应用程序权限。
我了解用户将请求提供给我们的应用程序的身份验证代码。然后我们的应用程序将使用身份验证代码生成访问令牌。
我们只想这样做一次。然后充当用户发送和接收通知,而无需用户使用其凭据登录服务。
由于身份验证代码和身份验证令牌过期,我不确定如何实现这一点,而不必存储用户凭据来获取身份验证代码。我猜这是一个常见的场景。
我需要做什么才能实现我想要的目标?
你可以获得一个新的访问令牌用一个刷新令牌,如果这是由授权服务器.
如果未提供,我将联系 Api 提供商,您永远不应该存储用户凭据。事实上,如果 OAuth 协议作为客户端得到很好的实现,那么您应该永远无法获得客户端凭据。当用户必须登录时,您应该将用户重定向到授权服务器,用户应该登录,然后授权令牌应该由授权服务器重定向到您的应用程序。
另请参阅 OAuth 2.0 规范中有关刷新令牌的说明:
刷新令牌是用于获取访问令牌的凭据。刷新
令牌由授权服务器颁发给客户端,并且
用于在当前访问令牌失效时获取新的访问令牌
变得无效或过期,或获取额外的访问令牌
具有相同或更窄的范围(访问令牌可能具有更短的
生命周期和比资源授权的权限少的权限
所有者)。颁发刷新令牌是可选的,由
授权服务器。如果授权服务器发出刷新
令牌,在颁发访问令牌时包含它
Note
如果您使用 RefreshToken 请求新的 AccessToken 并且响应包含新的 RefreshToken,您应该覆盖当前保存的 RefreshToken。换句话说,您应该始终使用收到的最新 RefresthToken。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)