larva / laravel-passport-socialite
这是一个用于社交的 Laravel Passport 授权。
Requires
- illuminate/support: ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- laravel/passport: ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0
- larva/laravel-socialite: ^1.0
README
laravel passport 中缺失的社交认证插件(即 SocialGrant)。
Laravel Passport Socialite
laravel passport 中缺失的社交认证插件(即 SocialGrant)。
描述
此包帮助使用 Laravel 的原生包(即 passport 和 socialite)集成社交登录。此包允许从 Laravel/socialite 包支持的提供商进行社交登录。
入门指南
要开始使用,请使用以下命令将以下包添加到您的 composer.json 文件中。
composer require larva/laravel-passport-socialite -vv
配置
当 composer 成功安装此包后,请在您的 config/app.php 配置文件中注册 Larva\Passport\Socialite\PassportSocialiteGrantProvider::class
。
'providers' => [ // Other service providers... Larva\Passport\Socialite\PassportSocialiteGrantProvider::class, ],
注意:您需要根据 Laravel Socialite 文档中所述配置第三方社交提供者的密钥和密钥字符串(https://laravel.net.cn/docs/5.6/socialite#configuration)
使用
设置您的 User 模型
将 findAndValidateForPassportSocialite
方法添加到您的 User
模型中,findAndValidateForPassportSocialite
方法接受两个参数 $provider
和 $socialUser
。
$provider - 字符串 - 您的社交账户提供商。如:facebook, google。
$socialUser - \Larva\Socialite\Contracts\User - 社交服务商获取到的用户实例
函数应该找到与该信息相关的用户并返回用户对象,如果没有找到则返回 null
以下是上述实现后您的 User
模型应如何看起来。
namespace App\Models; class User extends Authenticatable { use HasApiTokens, Notifiable; /** * Find user using social provider's user * * @param string $provider Provider name as requested from oauth e.g. facebook * @param \Larva\Socialite\Contracts\User $socialUser User of social provider * * @return User|void */ public static function findAndValidateForPassportSocialiteRequest(string $provider, \Larva\Socialite\Contracts\User $socialUser) { if( $socialUser->user) { return $socialUser->user; } // 你其他代码,例如自动注册用户 如果你绑定了用户 \Larva\Socialite\Contracts\User 里面有你绑定的用户模型实例 return; } }