Bha*_*tel 2 laravel laravel-5 laravel-passport
我在 routes/api.php 上配置的 Laravel 应用程序路由是。
<?php
use Illuminate\Http\Request;
Route::post('see_all_product', 'API\ProductController@see_all_product');
?>
Run Code Online (Sandbox Code Playgroud)
问题是我想发送产品列表,但如果用户通过身份验证,则发送产品收藏标志 1,如果未通过身份验证,则发送返回收藏夹 0
但是两种情况都发送带有最喜欢标志的产品列表。
如果我使用我的用户 ID 和密码登录并发送对see_all_product 的请求,那么我将获得空白用户。
$user = $request->user();
Run Code Online (Sandbox Code Playgroud)
但是,如果我设置如下路线,我将获取用户详细信息。
<?php
use Illuminate\Http\Request;
Route::group(['middleware' => 'auth:api'], function(){
Route::post('see_all_product', 'API\ProductController@see_all_product');
});
?>
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如果在具有相同 api 的标头中设置了授权,我如何获取详细信息。
<?php
use Illuminate\Http\Request;
Route::post('see_all_product', 'API\ProductController@see_all_product');
?>
Run Code Online (Sandbox Code Playgroud)
我的see_all_product功能
public function see_all_product(Request $request){
try {
$user = $request->user();
} catch (Exception $ex) {
Log::error($ex);
}
}
Run Code Online (Sandbox Code Playgroud)
API 对于经过身份验证的用户和来宾用户都是相同的。
我在这两种情况下都传递了授权令牌,但中间件路由我得到了用户详细信息,但非中间件路由我没有得到用户信息。
请指导我在哪里可以错过什么?
我认为你可以这样做,而不是$request->user():
if (auth('api')->check()) {
$user = auth('api')->user();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |