這裏以
oauth
的密碼認證方式舉例laravel
首先是一個登陸的過程json
A.B.用戶訪問客戶端api
C.經過POST方法,發送用戶名和密碼到認證服務器服務器
D.同時,認證服務器使用已設定的client_id
和client_secret
,以及grant_type='password'
結合用戶提交過來的用戶名
和密碼
進行認證app
E.驗證經過後,認證服務器給客戶端返回帶有 token_type
expires_in
access_token
refresh_token
的數據;不經過會返回錯誤信息。spa
接下來是訪問資源的過程code
資源服務器上的某些資源是須要用戶驗證才能夠訪問的,在laravel中通常經過中間件
auth:api
來保護這些資源。當已獲取access_token
的用戶須要訪問這些資源,則須要進行下面的操做。中間件
F.用戶可經過任意方法請求資源服務器,但在請求的同時,須要在headers
中帶上這些信息:Accept:application/json,Authorization:Bearer +access_token
。注意!Bearer
與access_token
之間有個空格。blog
G.認證經過,服務器返回相應的數據;認證不經過,服務器返回錯誤信息token