【发布时间】:2017-09-11 09:09:39
【问题描述】:
我对 auth:api 中间件有疑问! 当我为未经身份验证的用户定义这样的路由时,我们有一个可供经过身份验证的用户和未经身份验证的用户访问的请求:
Route::post('{user}/leads', 'UsersController@getContact');
当访客用户请求此路线时,一切正常。
是,我可以使用$request->user();访问用户
但是如果通过不记名标头传递令牌并使用$request->user() 获取用户当然它不起作用!因为我们没有在这条路线上使用auth:api,如果我们这样做了,我们就不能用访客用户访问这条路线!
所以我找不到一种方法来为两个经过身份验证的用户定义一个路由,如果用户经过身份验证,我们会得到 $request->user() 并且没有经过身份验证的用户也可以访问该路由!
提前致谢。
【问题讨论】:
-
您需要为此类自定义创建自己的中间件。
-
我不明白为什么需要
auth:api才能使用户可用。auth:api中间件仅在不存在有效用户令牌时拒绝路由请求。它不会神奇地使令牌可用。通常你会做一个Auth::check()来确定是否有有效的用户访问该路由。
标签: laravel oauth routes middleware laravel-passport