拉拉维尔 API 门检查

IM 使用 Laravel 7 和 IM 使用入口和策略 我调用了 API 控制器,并且我有Journal_entries_controllerindex function


public function index()

{

    $journal_entries = Journal_entry::with('get_journal_entry_lines')->get();

    return response()->json($journal_entries,200);

}

像这样一切都很好. 为了检查门,我这样做了..


public function index()

{

    $auth = auth('api')->user();

    if(!Gate::allows('journal_entries.view',$auth))

        return 'not auth';

    $journal_entries = Journal_entry::with('get_journal_entry_lines')->get();

    return response()->json($journal_entries,200);

}

像这样,我没有得到身份验证,代码停在那里 如果我 dd($auth) 我会像这样对待登录的用户.


public function index()

{

    $auth = auth('api')->user();

    dd($auth);

}

这里的任何帮助,谢谢..


一只甜甜圈
浏览 121回答 1
1回答

拉风的咖菲猫

在 if 语句中:if(!Gate::allows('journal_entries.view',$auth))     return 'not auth';通过添加我们做出响应来返回,这就是代码返回的原因。Gate::allowsfalse!truenot auth首先要做的是确保 是 中的门。journal_entries.viewApp\Providers\AuthServiceProvider如果它是一个有效的门,请发布门的内容,以便我们知道预期的功能。同时,您可能想尝试更改为或if(!Gate::allows('journal_entries.view',$auth))if(Gate::denies('journal_entries.view',$auth))if(Gate::allows('journal_entries.view',$auth))门的文档可以在这里找到 https://laravel.com/docs/7.x/authorization#authorizing-actions-via-gates
打开App,查看更多内容
随时随地看视频慕课网APP