首頁 > 後端開發 > php教程 > 通過社交名錄輕鬆地在您的應用中添加社交登錄

通過社交名錄輕鬆地在您的應用中添加社交登錄

Christopher Nolan
發布: 2025-02-10 16:22:13
原創
459 人瀏覽過

laravel colecition:簡化Laravel應用程序中的社會身份驗證

本文,由Wern Ancheta和其他SitePoint審稿人進行的同行評審,探索Laravel Socialite,簡化社交認證的軟件包。

Easily Add Social Logins to Your App with Socialite

Socialite直接支持Google,Facebook,Twitter,LinkedIn,Github和Bitbucket。 儘管沒有計劃進一步的官方提供者,但社區驅動的社交名流提供商項目提供了許多非官方的擴展。

本教程假設了一個有效的Laravel應用程序。 建議改進宅基地,以實現強大的開發環境。

密鑰概念:

    laravel社會名稱摘要復雜的社會登錄身份驗證。
  • >它支持主要的Oauth提供商,並提供社區提供的擴展。
  • >配置涉及在每個社交平台上註冊您的應用程序以獲取憑據並更新
  • config/services.php>數據庫架構調整(例如,通過發送電子郵件和密碼無效)是必要的。
  • >
  • 自定義提供商擴展了不支持平台的Socialite功能。
  • >
  • >教程演示了GitHub社交登錄,包括OAUTH回調和用戶身份驗證更新。
  • 基於標準表格的身份驗證:

> >在整合社交登錄之前,請設置Laravel的基於默認表格的身份驗證:

導航到
php artisan make:auth
php artisan migrate
登入後複製
登入後複製
>應顯示功能登錄頁面。

> /login

Easily Add Social Logins to Your App with Socialite

>用社交名稱添加社交身份驗證:

使用作曲家安裝社交名稱:

註冊服務提供商和
composer require laravel/socialite
登入後複製
的立面:

config/app.php

> Socialite是一種懶惰的單例服務。 >
'providers' => [
    // ...
    Laravel\Socialite\SocialiteServiceProvider::class,
],

'aliases' => [
    // ...
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],
登入後複製

> configuration:

>在每個所需平台上註冊一個OAUTH應用程序,以獲取客戶端ID和秘密密鑰。 將這些憑據添加到>:

>

config/services.php>將實際鍵值存儲在您的

文件中。
'facebook' => [
    'client_id'     => env('FB_CLIENT_ID'),
    'client_secret' => env('FB_CLIENT_SECRET'),
    'redirect'      => env('FB_URL'),
],
// ...similar entries for other providers...
登入後複製

.env數據庫修改:

要容納社交登錄,請修改表格架構以允許無效的電子郵件和密碼字段。 安裝

users創建一個遷移:doctrine/dbal

composer require doctrine/dbal
登入後複製
>更新遷移文件(

)以使

php artisan make:migration prepare_users_table_for_social_authentication --table users
登入後複製

nullable。 database/migrations/...>為鏈接的社交帳戶創建模型和遷移:此遷移應包括email>,password和一個唯一的

>。 運行

LinkedSocialAccount

模型:

在兩個模型中定義>>>之間的一對多關係。 在User>中進行LinkedSocialAccountprovider_name質量分配 provider_idLinkedSocialAccount控制器:

>

方法創建

SocialAccountController重定向到OAuth提供商。 redirectToProvider>處理回調,使用A handleProviderCallback助手類查找或創建用戶並鏈接社交帳戶。 redirectToProvider handleProviderCallbackSocialAccountsService socialAccountsService助手類:

此類的>檢查現有鏈接帳戶或創建新用戶和鏈接的方法。

路由:findOrCreate

>

添加社交登錄的路線,以重定向和回調:>

routes/web.php> github登錄示例:

php artisan make:auth
php artisan migrate
登入後複製
登入後複製

註冊一個GitHub Oauth應用程序,獲取憑據,然後將其添加到>和>中。在您的登錄視圖中添加github登錄鏈接。

config/services.php .env

Easily Add Social Logins to Your App with Socialite >社交名流提供者項目:> Easily Add Social Logins to Your App with Socialite >社交名流提供者項目為許多非正式提供者提供。 用社交名流提供商的服務提供商替換Laravel的社交名流服務提供商。 註冊每個提供商的事件偵聽器,Easily Add Social Logins to Your App with Socialite

> Spotify登錄示例:

>使用Composer安裝Spotify提供商,在Spotify的開發人員平台上註冊該應用程序,將憑據添加到

>,然後將Spotify登錄鏈接添加到您的視圖中。 config/app.phpapp/Providers/EventServiceProvider.php

創建自定義提供者:

>創建一個提供者類擴展.env和一個事件偵聽器進行註冊。 請參閱原始文章中的Deezer提供商示例。

完整的代碼可在GitHub上找到。 這篇文章以常見問題解答涵蓋安裝,配置,錯誤處理,安全性和測試。

以上是通過社交名錄輕鬆地在您的應用中添加社交登錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板