访问授权和访问令牌之间的区别

时间:2015-01-27 17:44:28

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

我无法弄清楚门卫中令牌和格兰特之间的区别。在哪一刻,门卫创建了一个访问授权和一个访问令牌?文档似乎没有任何说明,现在我正在阅读代码,但不是十几行。

2 个答案:

答案 0 :(得分:11)

我建议您阅读documentation of oauth2
据我所知,门卫也是基于该文档中描述的协议。

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

访问许可通常只会非常短暂(门卫默认为10分钟)。 您将通过请求GET到api-url / oauth / authorize来获得此结果(不要忘记将client_id,redirect_uri和response_type作为参数.response_type将具有值"代码")。

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

使用access_token,您可以在有限的时间内获取API的资源(如果我没有弄错的话,门卫的默认值是一小时)。 当acces_tooken过期时,使用refresh_token获取新的access_token,依此类推。

总之,访问权限是用户允许应用程序使用其资源的标志。 访问令牌是允许应用在限定的有限时间内使用资源的关键。

希望它可以提供帮助。

答案 1 :(得分:2)

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

通常在Web服务器流程中,授予是指用户单击链接以获得同意授权的时刻:将要求他/她授权应用程序读取/写入数据。

如果同意被授予,那么应用程序将获得临时代码。使用此代码,应用程序将在后台询问服务提供商的令牌

然后,只有令牌,该应用才能使用服务提供商API。