lcharette / laravel-auth-api
为单页应用提供的基本认证API路由。
0.0.1
2021-04-04 01:52 UTC
Requires
- php: ^7.3|^8.0
- laravel/framework: ^8.12
- tymon/jwt-auth: ^1.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.17
- orchestra/testbench: ^6.15
- phpunit/phpunit: ^9.3.3
This package is auto-updated.
Last update: 2024-09-05 09:18:54 UTC
README
为基于Laravel的SPA应用程序提供的基本可重用认证API路由。此包不包括UI,除了用于电子邮件验证和密码恢复所需的UI。这将是您基于Vue(或类似)的前端项目的起点。
这还是一个正在进行中的项目,可能还不适用于生产环境
用法
设置
composer require lcharette/laravel-auth-api
接下来,您需要更新您的用户模型,使其实现 Tymon\JWTAuth\Contracts\JWTSubject
。可以使用 Lcharette\AuthApi\Auth\isJWTSubject
trait 来添加所需的方法。例如
class User extends Authenticatable implements JWTSubject { use Notifiable, SoftDeletes, HasFactory, isJWTSubject; ... }
可用路由
安装后,此包将为您的Laravel应用程序添加以下路由
所有路由在成功时将返回200
状态和JSON字符串。任何错误将返回为400
错误代码,错误详情包含在JSON响应中。如果没有有效令牌访问路由(除了登录和注册路由),将返回403
(禁止)状态代码。
限制其他路由
如果您想限制应用程序的路由,使其仅对“已登录”用户(即提供有效令牌的用户)可用,可以将 Lcharette\AuthApi\Http\Middleware\RequireAuth
中间件添加到任何路由或路由组。例如,这将使得如果没有通过请求传递有效令牌,则/list
返回一个403
错误。
Route::middleware([RequireAuth::class, 'api'])->group(function () { Route::get('/lists', [ListController::class, 'index']); });
或者,如果路由需要用户未登录,可以使用Lcharette\AuthApi\Http\Middleware\RequireGuest
中间件。
从Axios (Vue.js)发送令牌
可以从登录响应中检索令牌并将其设置为未来axios请求的默认请求头。只需确保在注销或遇到401错误时删除令牌即可。
axios.post("/api/login", { email, password }) .then(resp => { axios.defaults.headers.common['Authorization'] = 'Bearer ' + resp.data.access_token }) .catch(err => { localStorage.removeItem("access_token"); });
待办事项
- 吊销令牌
- 更新配置文件
- 更新密码
- 双因素认证
- 密码重置
- 电子邮件确认
- 自定义用户Trait / 接口
- 添加更多自定义化选项
许可证
此包根据MIT许可证开源。