我正在寻找使用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,令牌是在标头中发送的。
答案 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");
}
但是执行授权检查的方法有多种可能,请阅读上述文档以获取更多详细信息。