creatvstudio / socialite-auth
提供易于配置的社会化身份验证
Requires
- php: ^7.1
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^8.0
README
此软件包提供易于配置的 Laravel 社会化身份验证。由 CreatvStudio 提供
需求
要开始使用,请使用 composer 安装 Laravel Socialite。请参阅 Laravel Socialite 官方 文档。
composer require laravel/socialite
安装
您可以通过 composer 安装此软件包
composer require creatvstudio/socialite-auth
配置
在使用 Socialite 之前,您还需要添加应用程序使用的 OAuth 服务凭据。这些凭据应放置在您的 config/services.php
配置文件中,并应根据应用程序需要的提供者使用键 facebook
、twitter
、linkedin
、google
、github
、gitlab
或 bitbucket
。例如
'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('APP_URL') . '/login/facebook/callback', ], 'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => env('APP_URL') . '/login/github/callback', ],
用户模型
在您的 User
模型中使用 HasSocialite
特性。
use CreatvStudio\SocialiteAuth\HasSocialite; class User extends Authenticatable { use Notifiable, HasRolesAndAbilities, HasSocialite; ... }
控制器
创建一个新的控制器来处理您的请求
php artisan make:controller Auth/SocialiteController
然后使用 AuthenticatesSocialiteUser
特性。(我们计划在未来创建一个示例)
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Laravel\Socialite\Contracts\User as SocialiteUser;
use CreatvStudio\SocialiteAuth\AuthenticatesSocialiteUser;
class SocialiteController extends Controller
{
use AuthenticatesSocialiteUser;
protected $redirectTo = '/home';
protected $providers = [
'facebook',
];
/**
* Creates a user if it does not exist.
*
* @param mixed $user
* @return void
*/
protected function create(SocialiteUser $user)
{
return User::create([
'name' => $user->name,
'email' => $user->email,
'password' => Hash::make(Str::random()),
]);
}
}
已认证
与 Laravel Auth Controllers
类似,Socialite Auth 提供了一个空的 authenticated(Request $request, $user)
方法,如果需要可以重写。
/** * The user has been authenticated. * * @param \Illuminate\Http\Request $request * @param mixed $user * @return mixed */ protected function authenticated(Request $request, $user) { // Do anything here }
路由
在您的 routes/web.php
中添加登录路由。
Route::get('/login/{provider}', 'Auth\SocialiteController@login'); Route::get('/login/{provider}/callback', 'Auth\SocialiteController@callback');
自定义守卫
您还可以自定义用于认证和注册用户的“守卫”。要开始,在您的 LoginController、RegisterController 和 ResetPasswordController 上定义一个 guard 方法。该方法应返回一个 guard 实例。
use Illuminate\Support\Facades\Auth; protected function guard() { return Auth::guard('guard-name'); }
路线图
- 为
Auth/SocialiteController
添加示例 - 添加测试
测试
composer test
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全性
如果您发现任何安全问题,请通过电子邮件 jeff@creatvstudio.ph 联系我们,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件。
Laravel 软件包模板
此软件包是用 Laravel 软件包模板 生成的。