bikefreaks / logto-auth
这是我包装的logto-auth
dev-main
2024-09-04 10:51 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- logto/sdk: ^0.2.1
- spatie/laravel-package-tools: ^1.16.5
Requires (Dev)
- larastan/larastan: ^2.9.8
- laravel/pint: ^1.17.3
- nunomaduro/collision: ^8.4.0||^7.10.0
- orchestra/testbench: ^9.4.0||^8.22.0
- pestphp/pest: ^2.35.1
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.4
- phpstan/extension-installer: ^1.4.2
- phpstan/phpstan-deprecation-rules: ^1.2
- phpstan/phpstan-phpunit: ^1.4
This package is auto-updated.
Last update: 2024-09-04 10:51:35 UTC
README
这是您的描述应该出现的地方。请限制为一两段。考虑添加一个小示例。
安装
您可以通过composer安装此包
composer require bikefreaks/logto-auth
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="logto-auth-config"
这是发布配置文件的内容
return [ 'endpoint' => env('LOG_TO_ENDPOINT'), 'app_id' => env('LOG_TO_APP_ID'), 'app_secret' => env('LOG_TO_APP_SECRET'), 'lee_way' => env('LOG_TO_LEE_WAY', 15), ];
使用方法
// app/Policies/AppServiceProvider.php use BeraniDigital\LibraryLaravelLogtoIo\Facades\LibraryLaravelLogtoIo; public function register(): void { LibraryLaravelLogtoIo::config()->scopes = [ \Logto\Sdk\Constants\UserScope::profile, \Logto\Sdk\Constants\UserScope::email, \Logto\Sdk\Constants\UserScope::phone, \Logto\Sdk\Constants\UserScope::identities, \Logto\Sdk\Constants\UserScope::roles, ]; LibraryLaravelLogtoIo::config()->resources = [ // add your resources here ]; }
// routes/web.php Route::get('/callback', function () { try { \bikefreaks\LogtoAuth\Facades\LogtoAuth::handleSignInCallback(); }catch (\Logto\Sdk\LogtoException $e){ return redirect()->route('login')->with('error', $e->getMessage()); } $logToUser = \bikefreaks\LogtoAuth\Facades\LogtoAuth::fetchUserInfo(); $user = \App\Models\User::where(config('logto-auth.user_id_field'), $logToUser->sub)->first(); if(!$user){ $user = new \App\Models\User; $user->logto_id = $logToUser->sub; $faker = \Faker\Factory::create(); $user->name = $logToUser->name ?? $logToUser->username ?? $logToUser->email ?? $faker->numerify('User ####'); } // always fetch latest user's email and phone number after login if(config('logto-auth.save_phone')) { $user->phone = $logToUser->phone_number; } $user->email = $logToUser->email; $user->email_verified_at = $logToUser->email_verified ? now() : null; $user->save(); \Illuminate\Support\Facades\Auth::login($user); return redirect()->route('home'); })->name('auth.callback'); Route::get('/login', function () { return redirect(bikefreaks\LogtoAuth\Facades\LogtoAuth::signIn(route('auth.callback'))); })->name('login'); function logout() { \Illuminate\Support\Facades\Auth::logout(); return redirect(bikefreaks\LogtoAuth\Facades\LogtoAuth::signOut(route('home'))); } Route::get('/logout', function () { return logout(); })->name('logout');
测试
composer test
变更日志
请参阅变更日志了解最近更改的详细信息。
贡献
请参阅贡献指南了解详细信息。
安全漏洞
请查看我们的安全策略了解如何报告安全漏洞。
致谢
许可
MIT许可(MIT)。请参阅许可文件了解详细信息。