我正在Node.js上构建OAuth2提供程序和API。
我已构建系统以授予access_tokens
并要求client_key
和client_secret
这样做...
但是,一旦授予access_token
,并且客户端用户对API资源执行GET或POST请求,通常会将client_key
和client_secret
与此一起传递请求以及所有后续请求?
我一直认为只需要access_token
,但在审核了一些SDK(例如此Twitter node API client)后,他们正在使用OAuth客户端执行对API资源的后续请求,看起来每次都会包含client_secret
和client_key
。
答案 0 :(得分:1)
规范仅需要访问令牌。授权服务器本身绝对能够查找令牌的每个授权详细信息。
但是,在某些用例中,受保护资源也应该能够识别客户端(例如,进行访问日志记录),但规范并不包括如何进行此操作。使用JWS或其他自包含令牌,您可以手动从令牌中提取客户端ID(以及其他所有内容),但服务器也可以自由使用不同的令牌表示。
作为结论,除了访问令牌之外,包括客户端信息可能是Twitter和其他人的自定义实现细节,用于识别其客户端的受保护资源。