我正在用Laravel框架在PHP中开发管理面板。一些前端已经制作完成。这就是说,数据库和用户表已经被创建并且具有内容。有什么方法可以使用我的现有数据库和Laravel Auth类的表?Laravel认证系统可以使用现有的数据库吗?
我的数据库有它自己的密码加密方式 - Laravel可以适应吗?
我正在用Laravel框架在PHP中开发管理面板。一些前端已经制作完成。这就是说,数据库和用户表已经被创建并且具有内容。有什么方法可以使用我的现有数据库和Laravel Auth类的表?Laravel认证系统可以使用现有的数据库吗?
我的数据库有它自己的密码加密方式 - Laravel可以适应吗?
你可以做直接权威性,如果你需要:
$user = User::where('email', Input::get('email'))->first();
if($user && $user->password == md5(Input::get('password')))
{
Auth::login($user); /// will log the user in for you
return Redirect::intended('dashboard');
}
else
{
/// User not found or wrong password
}
注意,通过Laravel哈希密码是真正安全的,那些散列,让我们说,MySQL的,则相反。所以,你可以每次用户登录时将您的密码,不问他这样做:(!感谢的人)
$password = Input::get('password');
$email = Input::get('email');
if (Auth::attempt(array('email' => $email, 'password' => $password)))
{
return Redirect::intended('dashboard');
}
else
if($user && $user->password == md5($password))
{
Auth::user()->password = Hash::make($password);
Auth::user()->save();
return Redirect::intended('dashboard');
}
else
{
/// User not found or wrong password
}
继安东尼奥·卡洛斯·里贝罗的意见,这里是我如何管理它Laravel 5.2:
Http/Controllers/Auth/AuthController.php
,复制并粘贴vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticateUsers.php
的login()
方法在文件的顶部添加这些:
use Illuminate\Support\Facades\Auth as fAuth;
use Hash;
替换此:
if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
return $this->handleUserWasAuthenticated($request, $throttles);
}
通过这样的:
if (fAuth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
return $this->handleUserWasAuthenticated($request, $throttles);
} else {
$user = User::where('email', $request->email)->first();
if ($user && $user->password == md5($request->password)) {
$user->password = Hash::make($request->password);
$user->save();
if (fAuth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
return $this->handleUserWasAuthenticated($request, $throttles);
}
}
}
这需要我创造我自己的用户模式,对不对? – Hedam
你还没有?您不一定需要用户模型,您需要一个模型来检查用户名和密码,如果您将其称为Customer或Editor,则不会有任何区别。 –