Laravel - 登录时返回用户和身份验证详细信息
Posted
技术标签:
【中文标题】Laravel - 登录时返回用户和身份验证详细信息【英文标题】:Laravel - return user and authentication details upon login 【发布时间】:2018-07-28 04:13:02 【问题描述】:对 Laravel 完全陌生,并尝试使用 Passport 身份验证来进行登录调用。该调用返回用户身份验证详细信息:
"token_type": "Bearer",
"expires_in": 600,
"access_token": "...",
"refresh_token": "..."
但我也想在同一响应中获取用户详细信息:
"user_id": "1",
"forename": "Mustafa",
"surname": "3241234",
"email": "mustafaaaa@gmail.com"
...
"access_token": "...",
"refresh_token": "..."
这可能吗?这是我的控制器代码:
public function login(Request $request)
$this->validate($request, [
$this->username() => 'required|string|email|max:255',
'password' => 'required|string',
]);
$params = [
'grant_type' => 'password',
'client_id' => $this->client->id,
'client_secret' => $this->client->secret,
'username' => request('email'),
'password' => request('password'),
'scope' => '*'
];
$request->request->add($params);
$proxy = Request::create(
'oauth/token',
'POST'
);
return Route::dispatch($proxy);
【问题讨论】:
有办法。检查这个问题,这是第一个答案***.com/questions/41746078/… 【参考方案1】:我认为这应该没问题,那么您应该发送令牌来检索用户详细信息... 所以你的路由文件中有这样的东西
Route::group(['middleware' => 'auth:api'], function()
Route::post('user', 'MyController@details');
);
然后在你的控制器中
public function details()
$user = Auth::user();
return response()->json(['success' => $user], $this->successStatus);
当然有帮助...
【讨论】:
非常感谢,这正是我想要做的。我以为我可以使用访问令牌发送用户数据,但没有运气以上是关于Laravel - 登录时返回用户和身份验证详细信息的主要内容,如果未能解决你的问题,请参考以下文章