【问题标题】:Difference between Access Grant and Access Token访问授权和访问令牌之间的区别
【发布时间】:2015-01-27 17:44:27
【问题描述】:

我无法弄清楚 Doorkeeper 中 Token 和 Grant 之间的区别。什么时候,Doorkeeper 创建了一个访问授权,什么时候创建了一个访问令牌?文档似乎什么也没说,现在我正在阅读代码但不是十几行。

【问题讨论】:

  • 您能发布两个文档的链接吗?我的意思是,文档中的一个链接是关于 Access Grant 的,而另一个是关于 Access Token 的?
  • 没有文档。我只在代码中看到它们,但在文档中没有提及。

标签: ruby-on-rails ruby oauth-2.0 doorkeeper


【解决方案1】:

我建议您也阅读documentation of oauth2
据我了解,Doorkeeper 也是基于该文档中描述的协议。

在看门人中,您将首先获得访问权限,然后是访问令牌。

访问授权通常只存在很短的时间(门卫中的默认值为 10 分钟)。 您将通过向 api-url/oauth/authorize 请求 GET 来获得此信息(不要忘记将 client_id、redirect_uri 和 response_type 作为参数。response_type 将具有值“code”)。

一旦用户允许应用程序(用户单击“允许”按钮),门卫将在返回 url 中将访问权限作为参数返回。 获取该代码,您现在可以使用它向 api-url/oauth/token 发出 POST 请求,以获取您的 access_token 和 refresh_token。

使用access_token,你可以在有限的时间内获取API的资源(如果我没记错的话,Doorkeeper的默认是一小时)。 当 access_token 过期时,使用 refresh_token 获取新的 access_token 等等。

总之,access grant 是作为用户允许应用使用其资源的标志而给出的密钥。
Access token 是授予给允许应用在定义的有限时间内使用资源。

希望对你有帮助。

【讨论】:

  • 我还要补充一点,重要的是授权代码通过应用程序不信任的网络代理(通常是网络浏览器)以明文形式传递。然后,它使用此代码与通过上述 POST 请求发送的秘密相结合,以安全地获取令牌。
【解决方案2】:

我假设您在谈论 Web 服务器流程,因为您在 Rails 应用程序中使用 Ruby gem(如您所知,有 4 个流程)。

通常在 Web 服务器流程中,Grant 是用户点击同意授权链接的时刻:他/她将被要求授权应用读取/写入数据。 p>

如果同意,则应用将获得一个临时代码。使用此代码,应用程序将在后台向服务提供商询问 Token

然后,只有使用 Token,应用才能使用服务提供者 API。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多