Laravel5.3 集成 jwt

  • 安装 jwt 包
"tymon/jwt-auth":"1.0.0-alpha.3"
  • 修改 app.php
"providers"=>[
    Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
]

"aliases"=>[
    'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth',
]
  • 发布配置文件
php artisan vendor:publish
  • 修改 auth.php

我没有使用 user 表作为登录的表,因此下面的写法更具有普遍性。

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

    'providers' => [
        'members' => [
            'driver' => 'eloquent',
            'model' => App\Models\Member::class,
        ],
    ],
  • 不使用默认的登录控制器,新建控制器并重写 AuthenticatesUsers 的方法。因为 laravel 自带的用于后台了。
代码已被折叠,点此展开
  • 中间件以及 routes/api.php

api 使用了 dingo/api 构建

 $v2_namespace = "自己定义";
$api->version("v2",['prefix' => 'api/v2', 'namespace' => $v2_namespace],function(\Dingo\Api\Routing\Router $api){
    /**
     * 登录和退出登录
     */
    $api->post("login","AuthController@login");
    $api->post("logout","AuthController@logout");

    /**
     * 测试
     */
    $api->group(["middleware"=>"auth:api"],function (\Dingo\Api\Routing\Router $api){
        $api->get("test/token","TestController@testToken");
    });
});

备注#

TestController 实现

class TestController extends ApiController 
{
    public function testToken()
    {
        $user = JWTAuth::parseToken()->authenticate();

        return $user->toArray();
    }
}

url

http://localhost/api/v2/test/token

header

Authorization Bearer {token}

更多请参考

https://github.com/tymondesigns/jwt-auth/issues/860  
https://github.com/tymondesigns/jwt-auth/issues/260#issuecomment-143683226

谢谢观看。

轮回几多到凡尘,轮回几多少一人。
本帖已被设为精华帖!
本帖由系统于 7年前 自动加精
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6

为啥要用这个版本呢 1.0.0-alpha.3,
现在不是都用 5.0.* 版本吗

8年前 评论

@igo9go 5.3 需要 1.0 以上的版本

8年前 评论

有完整的代码吗?发我!我的报错 dmk@umxnt.com

8年前 评论

想问问 不是 api 么? 不用返回 validate 信息么?

7年前 评论