在NodeJS中使用https://github.com/thomseddon/node-oauth2-server
实施OAuth服务器我正在尝试了解OAuth 2.0的流程
不知怎的,我在这个npm包实现方面取得了成功,但我怀疑,出了点问题。
我会解释我是如何成功的。
第一次请求:
POST: http://localhost:3000/oauth/token
grant_type=password
client_id=1011
client_secret=somesecret
username=admin
password=admin
第一回应:
{
token_type: "bearer"
access_token: "7f5261011fb0f84a4e193889fff4b7478f2a4cb2"
expires_in: 3600
refresh_token: "da83de41966979ced65b3841e1758335a811c0c2"
}
获取访问令牌后,我正在发送另一个http呼叫
第二次请求:
GET http://localhost:3000/secret
Authorization: Bearer 7f5261011fb0f84a4e193889fff4b7478f2a4cb2
第二回应:
{"data":"Secret area accessible"}
但在这里我对
感到困惑问题1.缺少Authorization_code部分
问题2.在第一次通话中,我需要发送client_secret和user_password - 如果我发送两个意味着oauth客户端向用户公开秘密(浏览器)或用户向OAuth客户端提供密码。
如果有任何整个OAuth 2.0的请求/响应模式,请与我分享
a. browser -> oauth server POST /oauth/authorize?client_id,username,password
b. USER GRANTS PERMISSION
c. browser -> oauth server RESPONSE auth_code
d. browser -> oauth client POST auth_code
e. oauth_client -> oauth server POST auth_code
e. oauth server -> oauth_client RESPONSE access_token
f. oauth_client -> resource_server POST /resource?access_token (Question 3. But here how resource server validates access token is valid or not )