我想加密用户表的数据字段,我不想打破laravel默认的Auth功能。
我想要这样的东西
DB::table('client')->insertGetId(
array(
'name' =>DB::raw("AES_ENCRYPT('".$data['name']."', '".env('DB_ENCRYP_KEY')."')"),
'email' => DB::raw("AES_ENCRYPT('".$data['email']."', '".env('DB_ENCRYP_KEY')."')"),
'password' => DB::raw("AES_ENCRYPT('".$data['password']."', '".env('DB_ENCRYP_KEY')."')")
)
);
想在查询级别使用ASE_ENCRYPT。 我只需要知道在哪里可以找到Laravel身份验证模块的原始MySQL查询。所以我可以改变这样的查询。什么是文件名?
答案 0 :(得分:1)
不使用auth()->attempt()
,而是自己查询用户,然后使用login
方法。
例如,在控制器的login
方法中:
public function login()
{
$user = User::where(...)->first();
if ($user) {
auth()->login($user);
return redirect()->intended();
}
return redirect()->back()->withErrors('Wrong credentials');
}
答案 1 :(得分:0)
如果您的意思是使用使用laravel new
命令创建的默认应用,那么您正在寻找AuthController.php中的create方法(app / Http / Controllers / Auth / AuthController.php)
从包含在Auth :: login方法中的trait RegistersUsers.php调用create方法,因此只需确保返回User模型的实例而不仅仅是ID(与insertGetId方法一样)< / p>