Laravel аутентификация без перенаправления на предполагаемую панель управления - PullRequest
0 голосов
/ 21 июня 2020
<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{
    

    use AuthenticatesUsers;

    
    protected $redirectTo = RouteServiceProvider::HOME;

    
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }
    public function username()
    {
            return 'name';
        }

    public function authenticated(Request $request)
    {
        if (Auth::attempt(['name' => $request->name, 'password' => $request->password, 'userLevel' => 'Admin','status'=>'Active'])) {
            // Authentication passed...
            return redirect()->intended('admin');
        }else if (Auth::attempt(['name' => $request->name, 'password' => $request->password, 'userLevel' => 'customer','status'=>'Active'])) {
            // Authentication passed...
            return redirect()->intended('customer');
        }
    }
}

Приведенный выше код - это мой laravel контроллер входа в систему, и в этом я хочу перенаправить пользователя на основе их уровня пользователя на их панель управления , но предполагаемое перенаправление не работает, может ли кто-нибудь помочь с этим? Я новичок в laravel, поэтому учусь всему с нуля,

1 Ответ

0 голосов
/ 21 июня 2020

аутентифицированная функция имеет два параметра: запрос и зарегистрированный пользователь. поэтому вышеуказанную проблему мы можем решить, как показано ниже.

public function authenticated(Request $request, $user)
    {
        if ($user->userLevel == 'Admin' && $user->status == 'Active') {
            // Authentication passed...
            return redirect()->intended('admin');
        }else if ($user->userLevel == 'customer' && $user->status == 'Active') {
            // Authentication passed...
            return redirect()->intended('customer');
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...