Auth()->пользователь() или Auth::пользователь() возвращает неправильные пользовательские данные

#laravel #eloquent

Вопрос:

Я столкнулся с уникальной проблемой, в моей базе данных есть только 3 пользовательских данных Джон, Синди и Карла, я вхожу под именем Джон, но я получаю данные аутентификации Карлы, это должны быть данные аутентификации Джона.

вот моя функция входа в систему внутри LoginController.php

 public function login(Request $request) {
    $this->validateLogin($request);
    $credentials = ['user_id' => Arr::get('user_id','', $request->input('user_id')),                  
        'password' => Arr::get('password','', $request->input('user_password'))
    ]; 

    if(Auth::attempt($credentials)){
        return  redirect()->intended($this->redirectPath());
    }

    return back()->withInput($request->except('password'))->withErrors(['Username atau Password Wrong! ']);
}
 

Вот моя модель пользователя

 class User extends Authenticatable {
    use Notifiable;
    use HasRoles;

    protected $table = "m_user";
    protected $primaryKey = "user_id";

    public function getAuthPassword() {
        return $this->hash_password;
    }

    protected $fillable = [
        'user_id', 'nama', 'user_password','hash_password','role', 'company','is_active','created_by','created_at','updated_by','updated_at'
    ];

    protected $hidden = [
        'password', 'remember_token',
    ];
}
 

дело в том, что когда я ставлю dd(Auth()->user()) после
Auth::attempt() я получаю данные пользователя Джона, которые являются правильными, но если я dd(Auth()->user()) вхожу another Controller в свое приложение, я получаю данные аутентификации Карлы. почему?

К вашему сведению: Карла-это данные первой строки в моей таблице пользователей.

 if(Auth::attempt($credentials)) {
   dd(auth()->user()); <---- here, i get John Auth Data
   return  redirect()->intended($this->redirectPath());
}
 

попробуйте выполнить dd в другом контроллере. но собери Данные Карлы Авт.

 class DashboardController extends Controller {
    public function overview() {
        dd(auth()->user()); <---- i get Carla Auth Data, it's supposed to John Auth data.
    }
}
 

вопрос в том, почему Auth::user() or auth()->user() бы не вернуть данные пользователя для входа в другой контроллер?

Комментарии:

1. сессия может стать проблемой

2. Вы выходите из системы перед входом в систему с новым пользователем?

3. да, я выхожу из системы и использую браузер инкогнито. что я упускаю ? @Дайриалакхера

Ответ №1:

Вы можете написать заявление if внутри if(Auth::attempt($credentials)){} , чтобы проверить, является ли он желаемым пользователем или нет.
В результате вы можете отладить его и убедиться, что эта проблема действительно существует, потому что это звучит действительно странно