1
composer require tymon/jwt-auth ^1.0.0-rc.2
  1. 复制vender/laravel/lumen-framework/config/auth.php到/config/auth.php
  2. app.php 启动服务注册之类的
1
2
3
4
5
6
7
8
9
10

$app->withFacades();
$app->withEloquent();
$app->routeMiddleware([
'auth' => App\Http\Middleware\Authenticate::class,
]);

$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(Tymon\JWTAuth\Providers\LumenServiceProvider::class);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

return [
'defaults' => [
'guard' => 'api',
],

'guards' => [
'api' => ['driver' => 'jwt','provider' => 'admins'],
],

'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => \App\Models\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => \App\Models\Admin::class,
],
],

'passwords' => [
//
],

];
  1. 修改 ‘app/Providers’ 文件夹下的 ‘AuthServiceProvider.php’ 如下所示:

    1
    2
    3
    4
    5
    6
    7
    8
    public function boot()
    {
    // 当使用auth中间件的api门卫的时候验证请求体
    $this->app['auth']->viaRequest('api', function ($request)
    {
    return app('auth')->setRequest($request)->user();
    });
    }
  2. 模型下增加

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17

    use Tymon\JWTAuth\Contracts\JWTSubject;
    class User extends Model implements AuthenticatableContract, AuthorizableContract, JWTSubject
    public function getJWTIdentifier()
    {
    return $this->getKey();
    }

    /**
    * JWT
    *
    * @author AdamTyn
    */
    public function getJWTCustomClaims()
    {
    return [];
    }
  3. $token = Auth::login($user) //这样就获取到token了
    header :\
    Authorization : “Bearer “ + token

留言

2020-12-29

⬆︎TOP