oAuth 2.0 - 代表用户行事

时间:2014-03-19 16:51:22

标签: authentication oauth oauth-2.0

我是oAUth2的新手,我想尝试一些事情。

我理解oAuth2所涉及的基本原则,但我不确定如何在我的情况下实现它。

我正在编写一个应用程序,代表用户自动执行手动过程并执行某些任务(更新/请求状态等)。我们连接的API使用oAuth2来授予我们的应用程序权限。我们计划让用户在与我们一起创建新帐户时授予我们的申请许可。

我了解用户将请求提供给我们的应用程序的身份验证代码。然后我们的应用程序将使用身份验证代码生成访问令牌。

我们只想这样做一次。然后充当用户发送和接收通知,而无需用户使用其凭据登录服务。

由于auth代码和auth令牌过期,我不确定如何实现此操作而无需存储用户凭据以获取身份验证代码。我猜这是一种常见的情况。

我需要做些什么来获得我想要的成就?

1 个答案:

答案 0 :(得分:3)

如果由授权服务器提供,则可以使用 RefreshToken 获取新的 AccessToken

如果没有提供,我会联系Api提供商,您永远不应该存储用户凭据。事实上,如果OAuth协议作为客户端得到很好的实现,您甚至无法获得客户端凭据。当用户必须登录时,您应该将用户重定向到授权服务器,用户应该登录,然后授权服务器应该将授权令牌重定向到您的应用程序。

另请参阅OAuth 2.0规范中有关刷新令牌的说明:

  

刷新令牌是用于获取访问令牌的凭据。刷新      令牌由授权服务器发给客户端      用于在当前访问令牌时获取新的访问令牌      变得无效或过期,或获得额外的访问令牌      具有相同或更窄的范围(访问令牌可能有更短的      生命周期和权限少于资源授权的权限      所有者)。发布刷新令牌是可选的,由...决定      授权服务器。如果授权服务器发出刷新      令牌,在发出访问令牌时包含它

注意

如果您使用RefreshToken请求新的AccessToken并且响应包含新的RefreshToken,则应覆盖当前保存的RefreshToken。换句话说,你应该总是使用你收到的最新的RefresthToken。