【问题标题】:Laravel Passport : Users only have one token not manyLaravel Passport:用户只有一个令牌不多
【发布时间】:2017-05-01 03:56:18
【问题描述】:

Laravel Passport 对我的应用程序有一个非常复杂的系统,因为我认为对于这个简单的应用程序来说,拥有 OAuth 客户端的 Id、Secret 和 ... 所以我自己创建了一个 UserController 来用这些代码解决这个复杂性:

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use Illuminate\Support\Facades\Auth;
use App\User;
use Response;

class UserController extends Controller
{
    //
    public function __construct(){
        $this->content = array();
    }
     public function login(){
        if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
        $user = Auth::user();
        $this->content['token'] =  $user->createToken('URL APP')->accessToken;
        $status = 200;
    }
    else{
        $this->content['error'] = "Unauthorised";
         $status = 401;
    }
     return response()->json($this->content, $status);    
    }
} 

但问题是每次用户登录时都会获得新令牌和旧令牌不会过期并且拥有旧令牌的用户可以发送有效请求(我认为它应该是无效的)。
有没有办法给用户配置护照有一个令牌还是我应该自己做?

【问题讨论】:

    标签: php laravel laravel-5 laravel-passport


    【解决方案1】:

    是的,它是 jwt 令牌的问题。但是您可以通过创建自己的方法或使用其他一些库来克服这个问题。 “jwt-auth”也是一个令牌库,它还提供了可用于将令牌列入黑名单的黑名单方法。

    或者你可以在你的路由中创建一个中间件,并将令牌缓存在 redis 或 memcached 数据库中,并将其保存到 user_id 并每次与请求匹配。

    【讨论】:

      猜你喜欢
      • 2021-11-15
      • 2019-03-24
      • 2020-07-12
      • 2017-10-15
      • 2019-08-30
      • 2017-09-24
      • 2017-05-31
      • 2020-05-02
      • 2019-08-11
      相关资源
      最近更新 更多