【发布时间】:2017-12-07 18:29:15
【问题描述】:
我有 2 个模型 Admin 和 User 我可以通过引用 https://github.com/laravel/passport/issues/161 修改 UserRepository 和 PasswordGrant 来为这两个模型授予 access_token
在授予access_token 时一切都很好,但是当请求用户详细信息时
http://localhost:8000/api/user 我正在获取 User 模型的用户详细信息。
{
"id": 2,
"name": "App User",
"email": "appuser@gmail.com",
"created_at": "2017-07-04 10:01:52",
"updated_at": "2017-07-04 10:01:52"
}
//but i should be getting the user details of `admin` model
{
"id": 1,
"name": "Admin",
"email": "admin@gmail.com",
"created_at": "2017-07-04 10:01:52",
"updated_at": "2017-07-04 10:01:52"
}
我猜在请求user 时指的是User 模型而不是Admin 模型
我的auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'passport',
'provider' => 'users',
],
'admin' => [
'driver' => 'passport',
'provider' => 'admins',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
],
我只是在我的routes/api.php 路线中返回用户
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
期待获得急需的帮助
谢谢
【问题讨论】:
-
如何从请求中访问用户数据?您是否认为您在用户会话仍然有效的 Web 中间件上下文中执行请求?
-
@Frank Provost 感谢您抽出宝贵的时间,非常感谢,我正在开发
api,它不仅仅是一个用于前端应用程序的api网站 -
那么您能否提供代码示例,说明您访问相关用户的位置以及返回错误用户的位置?
-
@Frank Provost,我更新了我的帖子
-
而不是将 use Auth 放在开头,您可以直接使用它与 \Auth::guard('api')->user()
标签: php laravel api laravel-5.4 laravel-passport