framgia / laravel-jwt
JSON Web Token (JWT) 的 Laravel 5.2+ 原生守卫
Requires
- illuminate/auth: 5.2.*
- illuminate/cache: 5.2.*
- illuminate/http: 5.2.*
- illuminate/support: 5.2.*
- lcobucci/jwt: ^3.1
- nesbot/carbon: ~1.20
Requires (Dev)
- illuminate/config: 5.2.*
- illuminate/container: 5.2.*
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-14 19:04:08 UTC
README
此包提供了 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
默认情况下,令牌包含 jit
、sub
和 exp
声明。如果您需要提供自定义声明,请将 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.
特此免费许可任何人以任何方式获取此软件及其相关文档文件(“软件”)的副本(“软件”),无需支付费用,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,以及允许提供软件的人进行此类操作的权利,前提是以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,是否由于软件或其使用或其它交易而产生,或与之相关。
参见
- JWT Auth 包 由 Sean Tymon 提供