laravel 前后端分离 token

时间:2022-10-23 15:29:08

由于自己开发的项目中用到了 JWT 技术,前端采用了 Vue.js 框架,后端采用了 CodeIgniter 框架,故作此文帮助使用相同技术栈的朋友们。

具体思路如下:
把后端生成的 JWT token 存入 localStorage,然后前端切换路由(刷新页面)的时候,通过 Ajax 请求的时候带上这个 token,提交给后端判断当前的 token 是否有效,后端返回结果。

JWT 用处很多,可以用于后台权限的限制、接口安全性校验。

https://segmentfault.com/a/1190000010444825

 

 

https://blog.sakuradon.com/index.php/archives/349/

 

 

https://jwt-auth.readthedocs.io/en/develop/quick-start/

 

 

https://medium.com/employbl/build-authentication-into-your-laravel-api-with-json-web-tokens-jwt-cd223ace8d1a

https://jwt.io/introduction/

 

 

 

 

http://www.luohun.org/index.php/archives/27//www/wn-kiki-admin-server/app/User.php

 

    /**
     * 关闭 递增
     */
    public $incrementing = false;
    /**
     * 关闭 创建时间 与 更新时间的自动维护
     */
    public $timestamps = false;

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];
}

路由:

Route::group(['namespace' => 'Home','middleware' => ['api','response']],function (){
    //商品列表+详情
    Route::resource('/goodslist','GoodsController');
    //商品分类
    Route::resource('/class','ClassController');
    //需要登陆才能查看的接口
    Route::group(['middleware' => ['jwt.auth']],function (){
        //购物车
        Route::resource('/cart','CartController');
    });
});

0x03 创建token

需要引入的:
use App\user;
use JWTAuth;

//查询一条数据,并输出token
 $user = User::first();

    $token = JWTAuth::fromUser($user);

0x04 获取token




public function index(Response $response)
    {
        //获取用户信息
        $user = JWTAuth::toUser(Input::get('token'));
        //获取购物车信息
        $cart = self::$cartService->getCart($user->id);
        //判断是否有值
        if (empty($cart) || ($cart->count() <= 0)){
            return $response->setStatusCode(404);
        }
        return $cart;
    }


http://www.sunfengxiang.com/1097.html

Json Web Token(JWT)简介

 



https://learnku.com/articles/10885/full-use-of-jwt