framgia/laravel-jwt

JSON Web Token (JWT) 的 Laravel 5.2+ 原生守卫

v0.1.0 2016-05-19 04:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:04:08 UTC


README

Scrutinizer Code Quality Travis Build Status Packagist Version

此包提供了 JWT 认证的 Laravel 原生驱动程序。

安装

要安装此包,您需要

  • Laravel 5.2+
  • PHP 5.5.9+(Laravel 依赖项)

通过 composer 安装 - 编辑您的 composer.json 以要求该包。

"require": {
    "framgia/laravel-jwt": "0.1.*"
}

然后在您的终端中运行 composer update 以安装它。

或者

运行 composer require framgia/laravel-jwt 以自动安装最新版本

安装后,您需要将服务提供程序添加到您的 app.php 配置文件中。

'providers' => [
    // ...
    Framgia\Jwt\JwtServiceProvider::class,
    // ...
],

配置

jwt 驱动程序配置添加到您的 auth.php 配置文件中。

'guards' => [
    // ...
    'jwt' => [
        'driver' => 'jwt',
        'provider' => 'users', // May be replaced with preferred provider.
    ],
    // ...
],

laravel-jwt 使用应用程序密钥来加密令牌。您可以通过在服务器配置或 .env 文件中定义 JWT_KEY 环境变量来使用单独的密钥。

为了覆盖默认设置,将 jwt.php 配置文件发布到您的项目。

$ php artisan vendor:publish --provider="Framgia\Jwt\JwtServiceProvider"

用法

要获取守卫实例,请使用外观或服务容器。

Auth::guard('jwt');
app('auth')->guard('jwt');

守卫包括 Guard 合约所需的基本方法以及以下用于身份验证的方法

// Retrieve new authentication token by user credentials
$token = $guard->attempt($credentials);

// Blacklist current user token to discard authentication
$guard->logout();

为了通过身份验证,请使用返回的令牌提供 Authorization 标头

Authorization: Bearer TOKEN_HERE

默认情况下,令牌包含 jitsubexp 声明。如果您需要提供自定义声明,请将 ProvidesCredentials 合约添加到您的可验证实例中。

// ...
use Framgia\Jwt\Contracts\ProvidesCredentials;
// ...

class User implements Authenticatable, ProvidesCredentials
{
    // ...

    /**
     * Get credentials for JWT.
     *
     * @return array
     */
    public function getCredentials()
    {
        return [
            'admin' => $this->isAdmin(),
            'role' => $this->role,
        ];
    }

    // ...
}

贡献

请使用 GitHub 存储库 问题 来报告错误或 拉取请求 来提供错误修复和功能更新。

许可

MIT 许可证 (MIT)

版权所有 (c) 2016 Framgia Vietnam Ltd.

特此免费许可任何人以任何方式获取此软件及其相关文档文件(“软件”)的副本(“软件”),无需支付费用,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许提供软件的人进行此类操作的权利,前提是以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,是否由于软件或其使用或其它交易而产生,或与之相关。

参见