#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)){}
, чтобы проверить, является ли он желаемым пользователем или нет.
В результате вы можете отладить его и убедиться, что эта проблема действительно существует, потому что это звучит действительно странно