snd*_*yuk 13 authentication api http web bearer-token
使用该请求的请求Authorization: bearer [token]可用于身份验证吗?
要么
我们应该使用另一种方法来验证客户端并发出令牌,然后将令牌用作OAuth2的持票令牌吗?为什么流行的Web服务(例如Github,AWS,Google ..)使用其他方法(如AWS所做的:) Authorization: AWS4-HMAC-SHA256
Credential=...来验证客户端.问题的关键是:在以下流程中是否存在任何可贬值或违反标准的情况.
我想使用以下流程:
the client:这就像Twitter客户端.
the server:这就像Twitter API.
Authorization: bearer [token].我阅读了以下RFC,但我没有找到任何理由,为什么我不应该或应该使用上面的流程.
https://tools.ietf.org/html/rfc7235
https://tools.ietf.org/html/rfc6750
谢谢
小智 5
我建议坚持使用OAuth2规范.如果要使用用户名和密码来获取令牌,则应使用"客户端凭据"流.这意味着您需要一个"https"端点,用户可以通过以下POST请求获取访问令牌:
POST /token HTTP/1.1
Authorization: Basic base64_encode("username:password")
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
Run Code Online (Sandbox Code Playgroud)
如果客户端凭据有效,则端点应在服务器上创建访问令牌.除了令牌,你应该存储获得令牌的人和令牌到期时的时间戳.因此,令牌不应该像您的示例中那样加密用户名和密码,而应该是分配给用户的随机字符串.
然后,客户端可以使用访问令牌来访问API的受保护部分.如果您的API收到了持有人令牌,您可以在令牌表中查找已分配的用户.
在OAuth2中,您通常会通过API提供商先前获得的应用密钥和密钥获得访问令牌.这具有以下优点:用户不需要与第三方应用共享任何凭证.但是否需要这取决于您的用例.
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |