canis/lumen-jwt-auth

此包已被弃用,不再维护。未建议替代包。

Lumen的lcobucci/jwt轻量级包装

1.0.5 2016-02-23 22:23 UTC

This package is auto-updated.

Last update: 2020-01-24 17:02:00 UTC


README

这是一个Lumen的Guard驱动程序,它使用Laravel的Auth类添加JWT支持。所有重负载都来自lcobucci/jwt

Latest Stable Version Scrutinizer Code Quality Code Coverage Build Status License

安装

安装此扩展的首选方式是通过composer

运行以下命令之一:

php composer.phar require --prefer-dist canis/lumen-jwt-auth

或者

"canis/lumen-jwt-auth": "^1.0"

将其添加到您的composer.json文件的require部分。

config/jwt.php复制到您的Lumen应用的config目录。在您的本地.env文件中,为JWT_ISSUERJWT_SECRET设置值。

文档

在您的bootstrap/app.php文件中添加:

$app->register(\Canis\Lumen\Jwt\ServiceProvider::class);

示例config/auth.php文件(具有多个提供者)

<?php
return [
    'defaults' => [
        'guard' => env('AUTH_GUARD', 'user'),
    ],
    'guards' => [
        'user' => [
            'driver' => 'jwt',
            'provider' => 'user',
        ],
        'client' => [
            'driver' => 'jwt',
            'provider' => 'client',
        ],
    ],
    'providers' => [
        'user' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class
        ],
        'client' => [
            'driver' => 'eloquent',
            'model' => App\Models\Client::class
        ]
    ]
];

您可以使用Lumen骨架中找到的Authenticate中间件(如下所示)。一旦将其作为auth加载到routeMiddleware中,您就可以将auth添加到您想使用的路由中。如果您想指定守卫(请参阅上面的auth.php文件),可以这样附加:auth:userauth:client

<?php
namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Factory as Auth;

class Authenticate
{
    /**
     * The authentication guard factory instance.
     *
     * @var \Illuminate\Contracts\Auth\Factory
     */
    protected $auth;

    /**
     * Create a new middleware instance.
     *
     * @param  \Illuminate\Contracts\Auth\Factory  $auth
     * @return void
     */
    public function __construct(Auth $auth)
    {
        $this->auth = $auth;
    }

    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        if ($this->auth->guard($guard)->guest()) {
            return response('Unauthorized.', 401);
        }
        return $next($request);
    }
}

安全漏洞

如果您在此库中发现安全漏洞,请发送电子邮件至security@canis.io。所有安全漏洞都将得到及时处理。

许可证

此库是开源软件,根据MIT许可证许可。