【发布时间】:2019-05-16 08:58:05
【问题描述】:
我想构建一个 API 路由,它可以由经过身份验证的用户和未经过身份验证的用户调用,并根据用户是否经过身份验证返回数据。
我一直在使用 Auth::check()。
控制器功能是这样的:
class SomeController extends Controller
{
public function check(Request $request) {
if(Auth::check()) {
return response()->json([
'message' => 'Logged in'
], 200);
}
else {
return response()->json([
'message' => 'Not logged in'
], 200);
}
}
}
我最终有两种情况:
场景 1
Route::get('scenario1', 'SomeController@check');
在这种情况下,在控制器中,当我在 if 条件中检查 Auth::check() 时,无论用户是否经过身份验证,我总是得到错误条件。
场景 2
Route::get('scenario2', 'SomeController@check')->middleware('auth:api');
在这种情况下,在控制器中,当我检查 Auth::check() 时,当用户登录时我得到 true,当用户未登录时得到错误(Route[login] not defined)。
【问题讨论】:
标签: authentication laravel-5 routes laravel-middleware