2015-09-16 65 views
0

我想加密用戶表的數據字段,我不想打破laravel默認的Auth功能。Laravel/encrypt解密用戶tabel

我想是這樣的

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查詢。所以我可以像這樣改變這些查詢。什麼是文件名?

回答

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'); 
} 
+0

其作品@約瑟夫 –

0

如果你的意思是使用帶有laravel new命令創建的默認應用程序,那麼你在AuthController.php(應用程序/ HTTP /控制器尋找create方法/ Auth/AuthController.php)

創建方法從包裝在Auth :: login方法中的特徵RegistersUsers.php調用,因此只需確保返回User模型的實例而不僅僅是ID(與insertGetId一樣方法)