這篇文章給大家分享的是有關(guān)laravel passport OAuth2.0的模式有哪些的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
成都創(chuàng)新互聯(lián)公司是專業(yè)的昆山網(wǎng)站建設(shè)公司,昆山接單;提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行昆山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!1... 熟悉的場景
某個網(wǎng)站,某用戶未注冊,注冊時提示可微信賬號登錄(github, google都有類似
某網(wǎng)站是第三方(客戶端), 認證服務(wù)器和資源服務(wù)器都在微信,資源是指微信的用戶名,頭像等
網(wǎng)站目的是獲取改用戶微信的賬戶,頭像等,方便快速注冊. 前提需要用戶授權(quán)同意.
laravel用passport搭建OAuth3認證服務(wù)
相當于基于laravel搭建OAuth3 Server.
資源擁有者: laravel server OAuth3 認證服務(wù)器: laravel server 用戶: 在laravel server注冊過的用戶 第三方: 通過api訪問的Web端,目的就是要拿到access_token
準備
見文檔: https://xueyuanjun.com/post/1...
4種模式
記得用artisan passport:client
添加對應(yīng)用戶
對應(yīng)不同應(yīng)用場景:
授權(quán)碼模式(authorization_code)
實現(xiàn)類似微信授權(quán)登錄的服務(wù).這個當然是最強大也最復雜的.
用戶點擊客戶端微信登錄按鈕,url跳轉(zhuǎn)到微信的登錄頁面, (比如微信登錄)
用戶登錄微信, 微信提示是否允許授權(quán).
實際是訪問認證服務(wù)器的/oauth/authorize
.
允許,redirect到 客戶端指定的redirect_uri
重定向uri由第三方在步驟1里指定.
后端無法控制具體重定向的url實現(xiàn),(每個第三方都不一樣)只能通過url添加返回參數(shù)code.
第三方服務(wù)的后端處理該重定向,再次發(fā)起訪問/oauth/token
,拿到真正的token
隱式授權(quán)
和code授權(quán)的區(qū)別是返回的redirect_uri沒有code參數(shù):
http://dev.blog.com:8000/oauth/authorize?client_id=6&response_type=code&scope=&state=SENPYyXJvT0fl4Rnz0Ag&redirect_uri=http%3A%2F%2Fdev.blog.com%3A8000%2Fauth%2Fcallback
密碼授權(quán)模式(password_credentials)
適用移動端.
無認證過程,客戶端登錄時直接帶上資源服務(wù)器注冊過的賬號密碼,就像使用同一個賬戶系統(tǒng).
客戶端模式(client_credentials)
類似微信等開放平臺的認證方式.開發(fā)者注冊后拿到clientid, client_secret,然后認證去拿token直接用
比密碼授權(quán)更簡單,無需用戶名密碼,直接用client_id + client_secret.
javascript api
適用spa,不用也行..畢竟還要提交表單登錄.
省掉js api 帶上Bearer Token +xxx
的認證,直接放到cookie里.
需添加middleware:\Laravel\Passport\Http\Middleware\CreateFreshApiToken::class
這個 Passport 中間件將會附加 laravel_token Cookie 到輸出響應(yīng),這個 Cookie 包含加密過的JWT,Passport 將使用這個 JWT 來認證來自 JavaScript 應(yīng)用的 API 請求,現(xiàn)在,你可以發(fā)送請求到應(yīng)用的 API,而不必顯示傳遞訪問令牌.
其他用法
1 私人令牌 授權(quán)方式在用戶測試、體驗平臺提供的認證 API 接口時非常方便 2 scope作用域 更細顆粒度控制api權(quán)限
感謝各位的閱讀!關(guān)于“l(fā)aravel passport OAuth2.0的模式有哪些”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!