Php 拉威尔api闸门检查
我用的是拉威尔7 我在使用闸门和策略 我有一个名为Php 拉威尔api闸门检查,php,laravel,authentication,Php,Laravel,Authentication,我用的是拉威尔7 我在使用闸门和策略 我有一个名为Journal\u entries\u controller的api控制器 我有索引功能 public function index() { $journal_entries = Journal_entry::with('get_journal_entry_lines')->get(); return response()->json($journal_entries,200); } 就像这样一切都很顺利。。 为了检
Journal\u entries\u controller的api控制器
我有索引功能
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);
}
这里的任何帮助都将感谢。在if声明中:
if(!Gate::allows('journal_entries.view',$auth))
return 'not auth';
Gate::allows
通过添加返回false
代码>我们使响应为真
,这就是未验证
代码返回的原因
要做的第一件事是确保journal\u条目。view
是App\Providers\AuthServiceProvider
中的一个门
如果它是一个有效的门,请张贴门的内容,以便我们知道预期的功能
与此同时,你可能想尝试改变
if(!Gate::allows('journal\u entries.view',$auth))
到if(Gate::denies('journal\u entries.view',$auth))
或
if(Gate::allows('journal_entries.view',$auth))
gates的文档可以在这里找到到底是什么问题?gate函数现在在api控制器中与meOk一起工作,您是否遇到错误?您可以共享任何日志文件吗?我得到的是返回not AUTH授权系统已使用当前已验证的用户(第一个参数传递给您定义的任何门),但您定义的“门”在做什么?