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);
}
}
但问题是每次用户登录获取新的令牌&旧令牌不会过期&具有旧令牌的用户可以发送有效请求(我认为它应该是无效的) 有没有办法为用户配置一个令牌,或者我应该自己做?
答案 0 :(得分:0)
是的,这是jwt令牌的问题。但是你可以通过制作自己的方法或使用其他一些库来解决这个问题。 " JWT-AUTH"也是一个令牌库,这也有一个黑名单方法可以用来将令牌列入黑名单。
或者您可以在路由中创建中间件并将令牌缓存在redis或memcached数据库中,并将其保存在user_id中,并且每次都与请求匹配。