lukapeharda/cookie-guard

提供由cookie令牌授权。

v1.4.0 2021-03-22 10:36 UTC

This package is auto-updated.

Last update: 2024-09-22 18:07:17 UTC


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许可协议