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