bombenprodukt / laravel-passage
1Password for Laravel 的 Passage
1.0.0
2023-05-25 01:46 UTC
Requires
- php: ^8.2
- bombenprodukt/laravel-manager: ^1.0
- bombenprodukt/laravel-package-powerpack: ^1.0
- illuminate/contracts: ^10.0
Requires (Dev)
- bombenprodukt/php-cs-fixer-config: ^1.0
- ergebnis/composer-normalize: ^2.2
- friendsofphp/php-cs-fixer: ^3.17
- infection/infection: ^0.27.0
- nunomaduro/collision: ^7.0
- nunomaduro/larastan: ^2.0
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- pestphp/pest-plugin-watch: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.2
README
此项目由 Brian Faust 创建并维护,是一个用于将 1Password 的 Passage 集成到 Laravel 的软件包。请确保浏览变更日志、行为准则、贡献指南、许可协议和安全策略。
安装
注意 此软件包需要 PHP 8.2 或更高版本,并支持 Laravel 10 或更高版本。
要获取最新版本,请使用 Composer 引入项目
$ composer require bombenprodukt/laravel-passage
您可以通过以下命令发布迁移
$ php artisan vendor:publish --tag="laravel-passage-migrations"
您可以通过以下命令发布配置文件
$ php artisan vendor:publish --tag="laravel-passage-config"
用法
请查看 我们的测试套件 以获取详细的用法示例。
示例
通过魔法链接进行身份验证
<?php declare(strict_types=1); use App\Models\User; use BombenProdukt\Passage\Facades\Passage; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Route; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider and all of them will | be assigned to the "web" middleware group. Make something great! | */ Route::post('/passage/login', function (Request $request): void { Passage::authentication()->magicLink()->login($request->get('email')); $request->session()->flash('status', 'We have e-mailed your magic link!'); return redirect()->back(); }); Route::post('/passage/register', function (Request $request): void { Passage::authentication()->magicLink()->register($request->get('email')); User::create(['email' => $request->get('email')]); $request->session()->flash('status', 'We have e-mailed your magic link!'); return redirect()->back(); }); Route::get('/passage/{YOUR_APP_ID}', function (Request $request) { $response = Passage::authentication()->magicLink()->activate($request->query('psg_magic_link')); $currentUser = Passage::authentication()->authenticatedUsers($response['auth_token'])->currentUser(); Auth::login(User::where('email', $currentUser['email'])->firstOrFail()); $request->session()->flash('status', 'You have been logged in!'); return redirect($response['redirect_url']); }); Route::get('/passage/{YOUR_APP_ID}/dashboard', function (Request $request): void { return view('dashboard'); });