tlx3 / laravel-jwt-starter
基于Laravel应用程序使用自己的API进行JWT身份验证的样板代码
This package is not auto-updated.
Last update: 2024-09-29 03:47:17 UTC
README
在微服务架构中,客户端组件将与一组需要身份验证和授权的微服务进行通信。通常,这些微服务的用户将使用系统中的同一API进行身份验证。通常,需要在每个微服务中复制创建登录页面和身份验证中间件的步骤。
给定一个Laravel应用程序,此包将创建一个通用的登录界面,并包含相关的jwt中间件以将用户认证到您的认证API。此Laravel样板代码可以添加到现有或新项目中,配置简单。它将相应的视图、CSS和中间件发布到您的项目中。这些可以根据您的需求进行配置。
安装
要安装此包,您需要
- Laravel 5
- PHP 5.4 +
运行 composer require tlx3/laravel-jwt-starter
将此包的服务提供者注册到您的 config/app.php
文件的 providers
部分
'providers' => [ // ... other providers omitted TLX3\LaravelJWTStarter\LaravelJWTStarterServiceProvider::class, ],
然后发布必要的中间件、视图和CSS
php artisan vendor:publish
or
php artisan vendor:publish --provider="TLX3\LaravelJWTStarter\LaravelJWTStarterServiceProvider"
此外,您还需要安装以下包
- 表单 & HTML - laravelcollective/html
composer require "laravelcollective/html"
- 更新
config/app.php
文件中的服务提供者和别名 -
'providers' => [ // ... Collective\Html\HtmlServiceProvider::class, // ... ], ... 'aliases' => [ // ... 'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, // ... ],
- PHP-JWT - firebase/php-jwt
composer require firebase/php-jwt
- Guzzle - guzzlehttp/guzzle
composer require guzzlehttp/guzzle
此项目集成了这三个包,用于表单构建器、令牌解码器和HTTP客户端。这些包具有许多功能,可以在开发过程中通过减少开销来帮助提高效率。
1) 环境变量
在您的 .env
文件中设置认证API端点、JWT密钥和成功登录响应代码,您可以根据您的需求在认证中添加/删除
AUTH_URL=
JWT_SECRET=
STATUS_CODE=
2) 中间件
更新 app/Http/Middleware/kernel.php
文件中的 $routeMiddleware 以包含添加的额外中间件。您应该修改这些中间件以及登录.blade.php视图以适应您的应用程序逻辑
protected $routeMiddleware = [ // ... other middleware omitted 'checkToken' => \App\Http\Middleware\CheckToken::class, 'notLoggedIn' => \App\Http\Middleware\NotLoggedIn::class, 'logout' => \App\Http\Middleware\Logout::class, 'login' => \App\Http\Middleware\Login::class, ];
3) 路由
更新 routes/web.php
以包含这些路由。您可以根据您的项目修改和更改这些路由,我添加了一个占位符主页作为登录后的着陆页
Route::get('login', function () { return view('login'); })->middleware('notLoggedIn'); Route::post('authenticate', function () { return View::make('home'); })->middleware('login'); // routes that require user to have been authenticated Route::group(['middleware' => 'checkToken'], function () { Route::get('home', function () { return View::make('home'); }); Route::get('logout', function () { return View::make('login'); })->middleware('logout'); });
4) 使用方法
安装后,您现在可以访问 /login
并尝试登录,访问之前设置的受保护路由。除了路由外,您可能还需要修改 views/login.blade.php
和 app/Http/Middleware/Login.php
以适应您的应用程序逻辑。认证输入在此设置,以及您可以根据需要定制的.env变量名称。您还应修改Login和CheckToken中间件以解码令牌以获取必要的有效负载项(如果需要)。
许可证
MIT