我正在使用此库:https://github.com/manjeshpv/node-oauth2-server-implementation
根据我对Oauth2的理解:
1)Generate a clientid and clientSecret
2)User use clientId and clientSecret to get a bearerToken
3)Authorisation server returns accessToken to users if valid clientId and clientSecret combination
4)User then use the accessToken to run http post/get api calls (within their scope)
在GITHUB中给出的POSTMAN示例中,我们有
我注意到密码授予,刷新令牌,客户端凭据授予和授权授予指向同一POST请求,但正文不同。
和Authorize示例Web服务,我假设用户必须单击才能使授权服务器返回访问代码,以便用户调用范围特定的API url,但是以某种方式也需要访问代码,我我很困惑。
并且如果我使用“客户端凭据授予”(我假设是使用我的clientId和clientSecret返回AccessToken),那么授权Web服务的意义何在?
此库和Web服务示例的正确流程是什么?
非常感谢您的帮助,谢谢!
答案 0 :(得分:1)
和Authorize示例Web服务,我假设是该用户 必须单击以使授权服务器返回一个 用户访问代码以调用范围特定的API url,但是以某种方式 访问代码也是必需的,我很困惑。
您的术语有点混乱。这可能是最受欢迎的OAuth流程:
clientid
和clientSecret
redirect_uri
)。该代码是短期代码,不能用于访问用户数据。clientId
和clientSecret
向OAuth服务器发出POST请求,并获得授权 token 作为交换。此令牌可用于访问用户数据。,并且如果我使用“客户凭据授予”(我假设是要返回 使用我的clientId和clientSecret的AccessToken),那么授权Web服务的意义何在?
由ClientCredentials授予获得的令牌标识客户端,而不标识用户。因此,我认为这对您而言毫无用处。