簡體   English   中英

如何在Laravel中將user_id添加到登錄參數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM