lukapeharda / cookie-guard
提供由cookie令牌授权。
v1.4.0
2021-03-22 10:36 UTC
Requires
- php: >=7.2
- firebase/php-jwt: ~5.0
- illuminate/auth: ^6.0|^7.0
- illuminate/container: ^6.0|^7.0
- illuminate/contracts: ^6.0|^7.0
- illuminate/database: ^6.0|^7.0
- illuminate/encryption: ^6.0|^7.0
- illuminate/http: ^6.0|^7.0
- illuminate/support: ^6.0|^7.0
README
简介
Cookie Guard 是一个使用cookie令牌的Laravel API身份验证包。其大部分内部机制来自Laravel Passport包。它旨在用于通过JavaScript消费自己的API。
安装
使用Composer在项目的根目录中要求此包。
$ composer require lukapeharda/cookie-guard
将服务提供者添加到config/app.php
中的providers
数组。
LukaPeharda\CookieGuard\CookieGuardServiceProvider::class,
将LukaPeharda\CookieGuard\HasApiTokens
特性添加到您的App\User
模型。此特性将为您的模型提供一些辅助方法,允许您检查认证用户的令牌和作用域
<?php namespace App; use LukaPeharda\CookieGuard\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use HasApiTokens, Notifiable; }
将CreateFreshApiToken
中间件添加到您的web
中间件组
'web' => [ // Other middleware... \LukaPeharda\CookieGuard\Http\Middleware\CreateFreshApiToken::class, ],
使用方法
此中间件将向您的响应附加一个laravel_token
cookie。
最后,在您的config/auth.php
配置文件中,您应将api
身份验证守护者的driver
选项设置为cookie
。这将指示您的应用程序在身份验证传入的API请求时使用CookieGuards的CookieGuard
。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'cookie', 'provider' => 'users', ], ],
此中间件将向您的响应附加一个laravel_token cookie。此cookie包含一个CookieGuard将用于从您的JavaScript应用程序中认证API请求的加密JWT。
在使用此认证方法时,您需要通过X-CSRF-TOKEN头将CSRF令牌与每个请求一起发送。如果您使用的是框架中包含的默认Vue配置,Laravel将自动发送此头。
Vue.http.interceptors.push((request, next) => { request.headers['X-CSRF-TOKEN'] = Laravel.csrfToken; next(); });
许可协议
Cookie Guard 是开源软件,许可协议为MIT许可协议