[英]How to add user_id to login parameter in Laravel?
下面是特征AuthenticatesUsers
中的一些方法,其中Illuminate\\Foundation\\Auth
,Laravel。
...
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required|string',
'password' => 'required|string',
]);
}
...
public function username()
{
return 'email';
}
最初,我的目標是在移動設備中使用user_id和密碼制作另一個登錄表單,因此這將檢查Auth(),如果成功,它將使用某種方法並在此之后自動注銷。 你能告訴我詳細的建議嗎?
附加問題。
根據Jaskaran Singh's
建議,我還如下添加了它。
protected function authenticated(Request $request, $user)
{
if($request->Inn == 'Inn') {
return redirect()->route('mobiles_start', ['Inn' => 'Inn']);
}
elseif($request->Ut == 'Ut') {
return redirect()->route('mobiles_destroy', ['Ut' => 'Ut']);
}
return view('welcome');
}
但如果登錄失敗,則會將其重定向回/login
頁面,而不是上面路由(mobiles_start和mobiles_destroy)中預定義的預期視圖頁面。 我該怎么辦?
您可以使用以下用戶名登錄:
if(Auth::loginUsingId($user->id)){
return response()->json(['success' => $user], $this->successStatus);
}
您不必擴展核心特征或任何核心Laravel代碼。
在app / Http / Controllers / Auth / LoginController.php中添加以下功能,這將覆蓋AuthenticatesUsers特征中的默認功能。
添加username()函數
public function username()
{
if(request('id')){
return 'id'; // if request contains id then return it
}
return 'email'; // else return email
}
添加validateLogin()函數
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required', //remove |string
'password' => 'required|string',
]);
}
而已。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.