Laravel / encrypt decrypt用户表

时间:2015-09-16 21:54:50

标签: mysql laravel laravel-5 laravel-5.1

我想加密用户表的数据字段,我不想打破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查询。所以我可以改变这样的查询。什么是文件名?

2 个答案:

答案 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>