Laravel ??: Laravel Socialite ? Github? ???? ?? ???? ???? ??? ??????
Jun 13, 2023 pm 07:09 PM?? ? ????????? ???? ?? ??? ??? ???? ? ???? ??? ?? ???? ? ?? ?? ??? ?????. ?? ?? ???? ???? ?? ????? ?? ?? ???? ???? ??????? ? ???? ???? ?????.
? ???? Laravel Socialite? Github? ???? ?? ???? ???? ??? ???????. Laravel Socialite? ?? ??? ??? Laravel ??????? ?? ??? ? ?? ??? Laravel ?????. Github? ?? ?? ???? ???? ?? ?? Git ??? ??? ??????.
???? ?? Laravel? Composer? ???? ??? ?????.
- Laravel Socialite ??
?? Laravel Socialite? ???? ???. ????? ?? ??? ?????:
composer require laravel/socialite
? ??? Laravel Socialite ????? ?????? ?????.
- Github ? ???
Github? ????? ?? Github? ?? ?? ???? ??? ? ??? ?? Github ?? ???? ???.
? ??? ???? Github ??? ??????: https://github.com/settings/developers
?? ?? "? OAuth ?" ??? ???? ??? ?????. ???? URL?? ???? URL?, ?? ?? URL?? ?? URL? ?????. ? ??? ??? ??????? Github? ???? ????.
- Laravel Socialite ??
???? ?? ?? Github ?? ??? ? ??? Laravel Socialite? ???? ???.
3.1 Github ???? ??
config/services.php
??? ?? ?? ??? ?????. config/services.php
文件并添加以下配置:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => 'http://your-domain.com/auth/github/callback', ],
這將創(chuàng)建一個名為“github”的驅(qū)動程序,并配置客戶端 ID、客戶端密鑰和回調(diào) URL。請?zhí)鎿Q“your-domain.com”為您的主頁 URL。
3.2 更新 .env 文件
打開 .env
文件并添加以下配置:
GITHUB_CLIENT_ID=your-client-id GITHUB_CLIENT_SECRET=your-client-secret GITHUB_REDIRECT_URI=http://your-domain.com/auth/github/callback
請?zhí)鎿Q your-client-id
,your-client-secret
和 your-domain.com
為您的 Github App 的客戶端 ID、客戶端密鑰和主頁 URL。
- 創(chuàng)建 Github 登錄路由和控制器
現(xiàn)在,我們可以開始實(shí)現(xiàn)我們的 Github 登錄了。首先,我們需要創(chuàng)建一個 Github 登錄路由:
Route::get('auth/github', '[GithubController@login'); Route::get('auth/github/callback', '[GithubController@callback']);
然后,我們需要創(chuàng)建 GithubController
控制器類,并在其中實(shí)現(xiàn) login
和 callback
方法:
namespace AppHttpControllers; use IlluminateHttpRequest; use LaravelSocialiteFacadesSocialite; class GithubController extends Controller { public function login() { return Socialite::driver('github')->redirect(); } public function callback(Request $request) { $user = Socialite::driver('github')->user(); // do something with user data } }
在 login
方法中,我們使用 Socialite
facade 調(diào)用 driver
方法指定使用 Github 驅(qū)動程序,并使用 redirect
方法生成一個跳轉(zhuǎn)到 Github 登錄頁面的 URL。
在 callback
方法中,我們先使用 Socialite
facade 調(diào)用 driver
方法獲取 Github 用戶信息,然后可以進(jìn)行一些邏輯處理。例如,如果該用戶是首次登錄,可以將用戶添加到用戶表中,或者將其與已有用戶進(jìn)行關(guān)聯(lián)。
5.測試 Github 登錄
現(xiàn)在,我們已經(jīng)完成了所有的配置和代碼,可以測試我們的 Github 登錄是否正常工作了。
在瀏覽器中輸入該地址:http://your-domain.com/auth/github。這將轉(zhuǎn)到 Github 登錄頁面。在頁面上輸入您的 Github 帳戶信息,然后單擊“登錄”。如果一切正常,您將被重定向到我們在第 3 步中配置的回調(diào) URL。
在 callback
return view('welcome');??? ?? "github"?? ????? ???? ????? ID, ????? ???? ? ?? URL. "your-domain.com"? ???? URL? ????. 3.2 .env ?? ????
.env
??? ?? ?? ??? ?????. rrreee
your-client-id
, your-? ?????. client-secret
? your-domain.com
? Github ?? ????? ID, ????? ?? ? ???? URL???.
- Github ??? ?? ? ???? ??????????? Github ??? ??? ??? ? ????. ?? Github ??? ??? ???? ???: ??rrreee???? ??
GithubController
???? ???? ??? login
? callback
? ???? ???. ??: ??rrreee??login
????? Socialite
???? ???? Github ????? ???? driver
??? ?????. > ???? ???? Github ??? ???? ???? URL? ?????. ???? ??
?????? ?? Socialite
???? ???? driver
???? ???? Github ??? ??? ?? ?? ? ?? ??? ?????. ??? ??. ?? ??, ???? ???? ????? ?? ?? ???? ??? ???? ????? ?? ???? ??? ? ????. ????5. Github ??? ????????? ?? ??? ??? ??????? Github ???? ??? ????? ???? ? ????. ????????? http://your-domain.com/auth/github ??? ?????. ??? Github ??? ???? ?????. ???? Github ?? ??? ???? ???? ?????. ?? ?? ???? 3???? ??? ?? URL? ???????. ??????
??? ?? ?? ??? ?????. ??rrreee????? ?? ??? ?? ? ???? ?? ???? ???????. ?????? ??????? Github ??? ??? ???? ???? ? ??? ???? ? ????. ?????????? ?? ???? Laravel Socialite? Github? ???? 3rd Party ??? ???? ??? ??????. ???? ???? ??? ???? ?????? ???? ?? ???? ? ?? ??? ?? ??????? ?? ??? ????? ??? ??????? ?? ???? ?? ? ????. ??? ??? Laravel ??: Laravel Socialite ? Github? ???? ?? ???? ???? ??? ??????? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

PHP?? ?? ??? ???? ? ?? ?? ??? ????. 1. php.ini? ?? ??? ??; 2. ? ?? (? : Apache? Setenv ?? nginx? FastCGI_Param)? ??????. 3. PHP ?????? putenv () ??? ??????. ? ??? Php.ini? ????? ??? ???? ??? ???? ? ?? ??? ?? ???? ????? ???? Putenv ()? ?? ??? ?????. ?? ???? ?? ?? (? : php.ini ?? ? ?? ??)? ???? ????. ?? ?? ??? ??? ?? ??? ????? ???? ?? ????.

Laravel? ?? ??? ?? ?? ??? ?? ?? ??? ???? ??? ??????. ?? ???? ?? ??? ????? ? ???? I/O ?? ? ?? ?? ??? ???? ???? ??? ?? ? ????. 1. ?? ????? ?? ? ? ???????? ??? ????? ?? ???? ??????. 2. ??? ? ??? ?? ? ? PhPartisAnconfig? ?? ???????. 3. ?? ??? ??? ??? ???? ?? ?? ?? ???? ???? ????. 4. ?? ?? ??? ???? ?? ??? ??? .env ??? ???? ?? ???????.

PHP ????? ?? ??? ??? ? ??? ??? CI (Continuous Integration) ????? ???? ? ????. 1. DockerFile? ???? ?? ???, ?? ??, ??? ?? ? ?? ??? ???? PHP ??? ?????. 2. Gitlabci? ?? CI/CD ??? ???? .gitlab-ci.yml ??? ?? ??, ??? ? ?? ??? ???? ?? ??, ??? ? ??? ?????. 3. PHPUNIT? ?? ??? ??? ??? ???? ?? ?? ? ???? ???? ????????. 4. Kubernetes? ?? ?? ?? ??? ???? ?? .yaml ??? ?? ?? ??? ?????. 5. Dockerfile ??? ? ??? ??? ??????

??? ?? ??? PHP ???? ?? ?? ??? ???? ?? ???????. RBAC (Role-Based Access Control) ??? ?? ???, ?? ? ??? ???? ??? ?? ?? ? ??? ?????. ?? ???? ??? ?????. 1. ???, ?? ? ??? ? ???? user_roles ? role_permissions? 3 ?? ?? ???; 2. $ user-> can ( 'edit_post')? ?? ???? ?? ?? ??? ?????. 3. ??? ???? ??? ??????. 4. ?? ??? ???? ?? ?? ?? ? ??? ? ???? ???? ?? ??? ? ?? ??? ?????. 5. ??? ??? ?? ?? ???? ?? ???? "??"? ??????.

Laravel? eloquentscopes? ?? ??? ??? ??? ?????? ?? ?? ??? ????? ?????. 1. ?? ??? ???? ???? ???? ???? Post :: published (); 2. ??? ??? ?? ??? ???? ???? ?? ??? ?? ?? ?? ??? ???? ???? ??? ?????? ??? ???? ???????. 3. ????? ?? ?? ?? ??? ??? ?? ?? ??? ?? ? ? ??? ?? ? ? ?? ?? ??? ?????. 4. ?? ??? ? ??? ?? ???? ? ??? ? ?? ??, ?? ??, ?? ???? ? ?? ?????????.

CreateAhelpers.phpfileInapp/helperswithCustOmFunctionsikeFormatPrice, isactiveroute, andisAdmin.2.addTheFileTothe "??"sectionOfcomposer.jsonUnderAutoLoad.3.runcomposerDump-AUTOLOADTOMAKETHINGTICTIONSGLOBELYAVAILABLE.4.USETHEHELPERFUNCUNTION

?? ?? ?? : ?? ????? PHP? ?? Error_Log ()? ??? ? ????. ????? ???? ??? ?? ??? ?????? ???? ?? ??? ? ?? ??? ???? ??? ?? ???, ??, ?? ? ?? ? ?? ?? ??? ???? ??? ??????. 2. ??? ?? ?? : ??? ??? ??? ??? ? ??? ?? ??? ??? ?? ??? ??? ??????? ??????. MySQL/PostgreSQL? ???? ??? ? ???? ??????. Elasticsearch Kibana? ? ???/? ???? ?????. ???, ??? ?? ? ??? ? ?? ??? ?? ??????. 3. ?? ? ?? ????? : ??, ???, ?? ? ??? ??? ??????. Kibana? ?? ????? PHP ??? ?? ?? ?????? ???? ???? ?????? ???? ??? ? ?? ??? ??? ? ????.

??, ??, ?? ?? ? ?? ??? ???? ?? ??? ?? ? ?? ???? ?????. 2. ?? ???? ???? ?? ??? ??? SONGSTOMONY ? HASMANY ?? ??; 3. ?? ? ? ?? ? ?? ??? ????? (?? ???? ?? ??? ? ??). 4. ?? ? ?? ??? ???? ?? ??? ???? ?? ? ?? ??? ???? ?? ??? ?????. 5. ?? ???? ??? ?? (?? ??)? ???? ?? ????? ??????. 6. ?? ??? ?? ??? ???? Laravel Signature URL? ???? ??? ??????. 7. ? ?? ?? ? ? ?? ??? ?? ?? ??? ?? ??? ?????. ?????? ??, ?? ?? ??? ??????????.
