Dingo / Api和JWT身份验证

时间:2018-09-09 19:24:17

标签: laravel jwt dingo-api

我正在寻找使用JWT和Dingo / Api实现身份验证的方法。我已将JWT包添加到我的项目中。在我的textView.textContainer.layoutManager = TextWrapLayoutManager() 身份验证部分中添加了'jwt' => 'Dingo\Api\Auth\Provider\JWT',

并且还添加到我的BaseController中

api.php

如何使用FormRequest检查用户是否具有权限(按角色)?它有一个public function __construct() { $this->middleware('api.auth'); } 方法,但是我不确定如何获得用户。

由于我使用的是JWT,令牌是在标头中发送的。

2 个答案:

答案 0 :(得分:0)

一种方法是将角色验证添加到中间件。

您可以尝试将此自定义验证添加到验证用户提供的JWT的部分,因为这是您可以确定谁是拥有令牌的用户的部分。

答案 1 :(得分:0)

您可以使用Auth门面来检索当前经过身份验证的用户:

$user = \Auth::user()

要获得授权,您可以使用策略,请参见https://laravel.com/docs/5.6/authorization 启用后,您可以使用authorize方法来检查用户功能,例如

public function authorize() {
    $user = \Auth::user();
    return $user->can("do-something");
}

但是执行授权检查的方法有多种可能,请阅读上述文档以获取更多详细信息。