Аутентификация в Laravel с использованием 2 таблиц - PullRequest
0 голосов
/ 06 января 2020

Я хочу создать систему соединений, используя 2 таблицы с Laravel на самом деле мои таблицы похожи на

Пользователи

Идентификатор пользователя Id_agence

Агентства

Id Code password

Я использую внешний ключ id_agence в таблице пользователей

Ответы [ 3 ]

3 голосов
/ 07 января 2020
$user=DB::table("Users")
                        ->join("Agences",'Users.Id_agence','Agences.id')
                        ->where("Users.Username","The username")
                        ->select("Agences.password as password")
                        ->first();
if(Hash::check("Your plain password",$user->password)){
----
}
0 голосов
/ 07 января 2020
public function traitement()
    {
        request()->validate([
            'username' =>  ['required'],
            'pass' => ['required']
        ]);



        $result = auth()->attempt([
            'username' => request('username'),
            'password' => request('pass'),
        ]);

        if($result){  
            flash("Your now connected")->success();

            return redirect('/home');
        }

        return back()->withInput()->withErrors([
            'pass' => 'Incorrect identifier'
        ]);
    }

вот что я попробую сначала

0 голосов
/ 07 января 2020
if(User::where('username', $request->username)->exists())
{
     $user = DB::table('users')
                       ->leftJoin('agences', 'users.id_agence', '=', 'agences.id')
                      ->where('users.username', $request->username)
                      ->first();

     $auth = Hash::check($request->password, $user->password);

         if($user && $auth)
         {
              Auth::login($user);

              Session::flash('success', 'LogIn Successful!');
              return redirect()->intended(route('user.index'));
         } 
     else
         { 
             //If unsuccessful then redirect back
             Session::flash('error', 'Email or password is incorrect!');

             return redirect()->back()->withInput($request->only('email', 
             'remember'));
         } 
 }
  1. Проверьте, существует ли имя пользователя, запрошенное с помощью формы или любым другим способом, в базе данных пользователей или нет.
  2. Если true, объедините таблицу «agences» с таблицей пользователя, чтобы получить всю информацию вместе с сохраненным хешированным паролем.
  3. Используйте метод Ha sh :: check, который позволяет проверять заданный простой текст, соответствующий заданному ha sh.
  4. Проверьте, выполняются ли оба условия, затем вы аутентифицируете пользователя через Auth :: login и перенаправляете его на заданный маршрут, иначе перенаправляете обратно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...