受權方式3-密碼模式(Resource Owner Password Credentials Grant)json
密碼模式(Resource Owner Password Credentials Grant)中,用戶向客戶端提供本身的用戶名和密碼。客戶端使用這些信息,向"服務商提供商"索要受權。服務器
在這種模式中,用戶必須把本身的密碼給客戶端,可是客戶端不得儲存密碼。這一般用在用戶對客戶端高度信任的狀況下,好比客戶端是操做系統的一部分,或者由一個著名公司出品。而認證服務器只有在其餘受權模式沒法執行的狀況下,才能考慮使用這種模式。app
它的步驟以下:url
(A)用戶向客戶端提供用戶名和密碼。spa
(B)客戶端將用戶名和密碼發給認證服務器,向後者請求令牌。操作系統
(C)認證服務器確認無誤後,向客戶端提供訪問令牌。3d
B步驟中,客戶端發出的HTTP請求,包含如下參數:code
下面是一個例子。orm
POST /token HTTP/1.1 Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=password&username=johndoe&password=A3ddj3w
C步驟中,認證服務器向客戶端發送訪問令牌,下面是一個例子。server
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache { "access_token":"2YotnFZFEjr1zCsicMWpAA", "token_type":"example", "expires_in":3600, "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA", "example_parameter":"example_value" }
整個過程當中,客戶端不得保存用戶的密碼。