如何删除 Laravel Auth Hashing(用 mysql hashing 代替)?

How to remove Laravel Auth Hashing (to replace it by mysql hashing)?

我添加了注册,我不想使用 laravels 哈希而是 mysql 哈希(因为我希望现有用户仍然能够连接)。 所以我一步一步地做,现在我只是尝试注册然后登录而不进行任何散列。我的 table 中的凭据是正确的,但我得到 "message":"The given data was invalid.","errors":{"email":["These credentials do not match our records."]}

我试过在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'
          ]); 
        } 
    }

}

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

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

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

而不是在您的控制器中,并确保删除 RegisterController

中的 brcypt() 方法

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