【发布时间】:2014-08-06 12:34:18
【问题描述】:
我正在开发一个 PHP 项目,该项目利用了一些服务的 API。对于单个 API,它使用 OAuth 2.0 授权来验证应用程序的 API 访问权限。但是,我不确定应该如何处理对本地控制台应用程序进行身份验证的过程。
我不会使用 webflow 来验证 API,因为我的 PHP 脚本在本地控制台中运行。 API 允许通过输入我的用户名和密码来检索访问令牌和刷新令牌(他们建议仅对控制台应用程序这样做)。
一旦获得访问令牌,我就可以使用它来发出 API 请求。这工作正常。但是,我不确定如何处理我的刷新令牌。 API 像这样使用刷新令牌:
/oauth2/access_token/(刷新令牌使用)
上下文:客户端的 Web 服务器
必需参数:refresh_token、grant_type=refresh_token、 client_id,client_secret
访问令牌范围:无
成功后,向客户端返回 JSON 响应:
{
"access_token": a valid access token,
"scope": scope as given in authorize,
"expires_in": seconds to expiry,
"refresh_token": a token that can be used to get a new access token
}
使用刷新令牌将立即使相关访问过期 令牌。刷新令牌是一次性的。返回一个新的刷新令牌 来自此调用,可供稍后使用。
根据我从中收集到的信息,我的身份验证过程应该是这样的:
- 初始身份验证 - 通过环境变量传递用户名/密码,从响应中获取访问/刷新令牌
- 存储刷新令牌?检查初始访问令牌是否过期
- 如果初始访问令牌已过期,请从文件中提取刷新令牌并请求新的访问/刷新令牌
- 存储新的刷新令牌?
这听起来像是正确的身份验证流程吗?有没有我应该存储刷新令牌的特定方式?我知道将刷新令牌简单地存储在文本文件中可能存在很多安全问题,因为它能够完全访问我的帐户。有没有更好的选择?
谢谢!
【问题讨论】:
标签: php authentication oauth oauth-2.0 access-token