by Devin Yang

建立於: 2年前 ( 更新: 2年前 )

Laravel提供了相當多好用的Package,像Passport就是其中之一,
當網站需要自架OAuth2驗證主機時,真的是省時省力。
本站為例,因為採前後台分離機制(有兩個不同的Laravel專案),我都透過前台的WEB進行驗證。
基本上,我還有很多其他不同的專案,也都靠Laravel提供的OAuth2就搞定跨域驗證。

當我前台WEB登入的情況下,開其他的專案就能直接登入了,
例如本站的發文後台及聊天室都採自家用的OAuth2進行驗證。

講這麼多,來看我最常下的指令如下,早期Laravel還提供WEB UI元件,後來好像沒了,因該發覺好像不需要了吧。😅

php artisan passport:client

 Which user ID should the client be assigned to?: (這裡輸入使用者編號)
 > 9

 What should we name the client?: (新的專案名稱,登入時會顯示給使用者這名稱的App需要驗證,基本我都直接AutoSubmit@@)
 > 新專案

 Where should we redirect the request after authorization? [https://www.ccc.tc/auth/callback]:
 > https://應用程式.ccc.tc/auth/ccc/callback


New client created successfully.
Client ID: n <這是Client的編號>
Client secret: <密密>

看到上面最後的畫面-,如果常建OAuth驗證的人應該很熟悉的感覺吧,像是臉書的OAuth驗證或是Google的OAuth驗證。
說白了,裝了Passport我們就有自己的OAuth2驗證主機了,而不是去始用Facebook或Google的。
我的聊天室主機就是大混合型,支援不同的驗證,登入後就能聊天。

以下分享我.env中的命名方式,您會發覺,幾乎所有的env差不多如出一轍,就像新兄弟..:p
ID、SECRET及CALLBACK。

#CCC OAuth
CCC_OAUTH_SERVER=https://www.ccc.tc
CCC_CLIENT_ID=
CCC_SECRET=
CCC_CALLBACK_URL=${APP_URL}/auth/ccc/callback

#Line Notify
LINE_NOTIFY_CLIENT_ID=
LINE_NOTIFY_SECRET=
LINE_NOTIFY_CALLBACK_URL=${APP_URL}/auth/line/notify/callback

#BOT
LINE_CHANNEL_ID=
LINE_CHANNEL_SECRET=
LINE_CALLBACK_URL=${APP_URL}/auth/line/callback

FACEBOOK_CLIENT_ID=
FACEBOOK_SECRET=
FACEBOOK_CALLBACK_URL=${APP_URL}/auth/facebook/callback

GITHUB_CLIENT_ID=
GITHUB_SECRET=
GITHUB_CALLBACK_URL=${APP_URL}/auth/github/callback

GOOGLE_CLIENT_ID=
GOOGLE_SECRET=
GOOGLE_CALLBACK_URL=${APP_URL}/auth/google/callback


如果您也嚐試裝Laravel的passport,目前新版的Laravel安裝預設會使用sanctum,記得調回api。

Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});


關於Laravel Passport詳細安裝及設定,還是請看官網的說明書吧:
https://laravel.com/docs/9.x/passport

 

Tags: laravel oauth2

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


laravel

Laravel 5.6有那些新變更

Laravel 5.6計劃於2018年2月釋出,有那些變更呢?我們來看看吧。(Argon2i Password Hashing Algorithm) ​​​​​​​Argon2 提供以下三種版本: 1. 在Laravel 5.6將支援 Argon2i密碼雜湊算法。 (Argon2i Password Hashing Algorithm) 2. Argon2d最大限度地抵抗GPU的破解攻擊。 3. Argon2i經過優化,可以抵抗旁路攻擊(side-channel attack)。 三、Argon2id是一個混合版本。 它遵循Argon2i方法進行第一遍遍歷,然後使用Argon2d方法進行後續遍歷。 看不懂沒關係,反正我也看不懂,重點是,反正比較安全是可以確定的。這是開放密碼雜溙競賽(PHC)在2015年7月20日

laravel-storage,sftp

用Laravel的Storage SFTP Drvier進行遠端檔案上傳

為何我把網站的搞前後台分離,我的想法很簡單,就是靠一套後台管控所有前台的網站資料。假設前台的網站為單純的行銷網站,那不外乎主題內容,就是上上文章那種,沒有什麼特別複雜的邏輯。所以後台的資料庫設記好連不同的前台就好了,那還剩最後一個問題,我的後台HTML編輯器如何貼圖直接貼文到前台呢?Laravel的Storage SFT Driver就是很好的解藥。

dlaravel

D-Laravel特定服務重啟

一般情況下,我們使用./console restart重建並且執行contaiener。 有時,我們有多個服務,並不想要一次重啟所有的服務, 這時,可以使用./console restart [servce name]來重啟特定服務..