我添加了注册,并且我不想使用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'
]);
}
}
}
我想我应该覆盖另一个函数,但是找不到哪个函数。 你能给我一些帮助吗?
答案 0 :(得分:1)
尽管您试图实现的目标被认为是不安全的,但是要删除Laravel的密码哈希,您需要将其添加到User
模型中:
public function setPasswordAttribute($password){
$this->attributes['password'] = $password;
}
,而不是在控制器中,请确保删除brcypt()
中的RegisterController
方法
要添加您自己的MySQL哈希方法,请更新您的控制器以在注册时创建用户时插入RAW查询