如何删除Laravel Auth Hashing(用mysql hash替换)?

时间:2019-05-16 09:42:47

标签: laravel laravel-5.2

我添加了注册,并且我不想使用laravels哈希,但是不想使用mysql Hash(因为我希望现有用户仍然能够连接)。 所以我一步一步地做,现在我只是尝试注册然后没有任何散列地登录。凭据在我的表中是正确的,但是我得到了 “ message”:“给定的数据无效。”,“ errors”:{“ email”:[“这些凭据与我们的记录不匹配。”]}

我尝试在LoginController.php中设置它

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;

class LoginController extends Controller
{
    public function username()
    {
        return 'email';
    }

    public function password()
    {
        return 'email';
    }

    public function setPasswordAttribute($password){
        $this->attributes['password'] = $password;
    }

    public function Login(Request $request)
    {
        if(Auth::attempt(['email' => $request->email, 'pwd' => $request->password, 'password' => $request->password])){ 
          $user = Auth::user();
          $username = $user->nom;
          return response()->json([
            'status'   => 'success',
            'user' => $username,
          ]); 
        } else { 
          return response()->json([
            'status' => 'error',
            'user'   => 'Unauthorized Access'
          ]); 
        } 
    }

}

我想我应该覆盖另一个函数,但是找不到哪个函数。 你能给我一些帮助吗?

1 个答案:

答案 0 :(得分:1)

尽管您试图实现的目标被认为是不安全的,但是要删除Laravel的密码哈希,您需要将其添加到User模型中:

public function setPasswordAttribute($password){
    $this->attributes['password'] = $password;
}

,而不是在控制器中,请确保删除brcypt()中的RegisterController方法


要添加您自己的MySQL哈希方法,请更新您的控制器以在注册时创建用户时插入RAW查询