nddcoder / laravel-passport-iam
用于集成 laravel 应用与 Passport IAM 的包
v1.1.0
2019-04-13 04:10 UTC
Requires
- nddcoder/laravel-http-client: ^1.1.0
This package is auto-updated.
Last update: 2024-09-13 16:14:22 UTC
README
安装
您可以通过 composer 安装此包
composer require nddcoder/laravel-passport-iam
您可以可选地通过以下命令发布配置文件
php artisan vendor:publish --provider="Nddcoder\PassportIAM\IAMServiceProvider" --tag="config"
这是发布配置文件的内容
return [ 'base_url' => env('PASSPORT_IAM_BASE_URL'), 'path' => [ 'oauth_token' => 'oauth/token', 'user' => 'api/user' ], 'client_id' => env('PASSPORT_IAM_CLIENT_ID'), 'client_secret' => env('PASSPORT_IAM_CLIENT_SECRET'), 'common_fields' => explode(',', env('PASSPORT_IAM_COMMON_FIELDS')), 'mapping_field' => [ 'iam' => 'uuid', 'local' => 'uuid' ] ];
配置
更新 config/auth.php
return [ //... 'guards' => [ //... 'api' => [ 'driver' => 'access_token', 'provider' => 'tokens', ], //... ], //... 'providers' => [ //... 'tokens' => [ 'driver' => 'token', 'model' => App\User::class, ] //... ] ];
在 .env 中填写信息
PASSPORT_IAM_BASE_URL=https://iam.domain.com
PASSPORT_IAM_CLIENT_ID=<passport_client_id>
PASSPORT_IAM_CLIENT_SECRET=<passport_client_secret>
用法
使用电子邮件/密码登录
use Nddcoder\PassportIAM\Services\IAMServiceInterface; $reponse = app(IAMServiceInterface::class)->login(['email' => 'email@example.com', 'passord' => 'secret']); /* { "token_type": "Bearer", "expires_in": 2592000, "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsI...", "refresh_token": "def50200ffa17b51e9e46117..." } */
使用中间件 auth:api
在请求中验证令牌
Route::group(['middleware' => ['auth:api']], function () { Route::get('/me', function(Request $request) { return $request->user(); }) });
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。