hanbz / passport-client
Laravel 对 passport 客户端 OAuth2 库的封装。
v1.0.1
2020-11-13 09:07 UTC
Requires
- php: ^7.2|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.0|^7.0
- illuminate/http: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
- league/oauth1-client: ^1.0
Requires (Dev)
- illuminate/contracts: ^6.0|^7.0
- mockery/mockery: ^1.0
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0|^9.3
README
介绍
从 Laravel Socialite 分支创建,用于构建 Laravel passport 客户端库以实现 OAuth2.0 认证,并使用 Laravel 端。
安装
$ composer require hanbz/passport-client
在 .env 中添加配置
CLIENT_ID=oauth_client
CLIENT_SECRET=oauth_secert
REDIRECT=your_callback_url
OAUTH_DOMAIN=your_oauth_server
在 config/service.php 中添加此部分
'passport' => [
'client_id' => env('CLIENT_ID'),
'client_secret' => env('CLIENT_SECRET'),
'redirect' => env('REDIRECT'),
'domain' => env('OAUTH_DOMAIN')
]
使用方法
使用 Facades 名称 PassportClient 使用此包。驱动名称为 passport。它包括两个函数 redirect 和 user。
redirect 函数会将用户重定向到 OAuth 服务器。
web.php
use App\Http\Controllers\Auth\OAuthController; use hanbz\PassportClient\Facades\PassportClient; Route::get('oauth/login', fn() => PassportClient::driver('passport')->redirect())->name('oauth.login'); Route::get('oauth/callback', [OAuthController::class, 'OAuthCallback']);
user 函数将返回用户信息。
AuthController.php
use App\Models\User; use hanbz\PassportClient\Facades\PassportClient; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Str; public function OAuthCallback() { $oauth_user = PassportClient::driver('passport')->user(); $user = User::where('email', $oauth_user->getEmail())->first(); if (is_null($user)) { $name = $oauth_user->getName(); $email = $oauth_user->getEmail(); $password = Str::random(8); $user = User::create(compact('name', 'email', 'password')); } Auth::login($user); return redirect()->intended('dashboard'); }
贡献
感谢您考虑为 Laravel passport 客户端做出贡献!
行为准则
为了确保 Laravel 社区对所有成员都持欢迎态度,请查阅并遵守 行为准则。
许可证
Laravel passport 客户端是开源软件,使用 MIT 许可证发布。许可证详情。