我无法弄清楚 Doorkeeper 中 Token 和 Grant 之间的区别。什么时候,Doorkeeper 创建了一个访问授权,什么时候创建了一个访问令牌?文档似乎什么也没说,现在我正在阅读代码,但不是十几行。
2 回答
我建议还阅读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的默认是一小时)。当 acces_taken 过期时,
总之,访问授权是作为用户允许应用程序使用其资源的标志而给出的密钥。
访问令牌是允许应用程序在已定义的有限时间内使用资源的密钥。
希望它可以提供帮助。
我假设您正在谈论 Web 服务器流程,因为您在 Rails 应用程序中使用 Ruby gem(如您所知,有 4 个流程)。
通常在 Web Server 流程中,Grant是用户单击链接以同意授权的时刻:他/她将被要求授权应用程序读取/写入数据。
如果同意,则应用程序将获得一个临时代码。使用此代码,应用程序将在后台向服务提供商询问令牌。
然后,只有使用Token,应用程序才能使用服务提供者 API。