Php Laravel 5.1用户登录不工作
我有一个登记表,它可以注册和登录用户。 我使用Php Laravel 5.1用户登录不工作,php,laravel-5.1,Php,Laravel 5.1,我有一个登记表,它可以注册和登录用户。 我使用$this->中间件('auth'),以提示用户登录。登录表单将POST请求传递给Laravel的AuthController,其中包含用户名和密码: <input type="hidden" name="_token" value="XXXXXXXXXX"> <div class="widget-content"> <input type="text" placeholder="Usernam
$this->中间件('auth')在受保护路由上的控制器中的代码>,以提示用户登录。登录表单将POST
请求传递给Laravel的AuthController,其中包含用户名和密码:
<input type="hidden" name="_token" value="XXXXXXXXXX">
<div class="widget-content">
<input type="text" placeholder="Username" name="username">
<input type="password" placeholder="Password" name="password">
<input class="btn btn-blue pull-right" type="submit" />
</div>
</form>
我尝试过使用认证系统现成的postLogin()
功能,尝试过向其传递用户名、姓名和电子邮件,但没有任何运气。我尝试像这样重写父方法:
public function postLogin(Request $request)
{
$username = $request->input('username');
$password = $request->input('password');
if (Auth::attempt(['name' => $username, 'password' => $password])) {
// Authentication passed...
return redirect('dashboard');
} else {
return redirect()->intended('auth/login');
}
}
编辑:
(对于任何有此问题的人来说,这都是老生常谈。)哈希函数的正确用法是
$password = Hash::make('yourPasswordString');
$result = Hash::check('yourPasswordString', $password); //returns true
这是CSFR令牌吗?由于您没有使用facade来调用表单,因此可能需要在打开表单标记之后添加token调用
电话如下:
{!!csrf_field()!!}
{!!Form::hidden('token',$token)!!如果您使用内置登录功能,Laravel也会对您的密码进行哈希运算,因此如果您正在对密码进行哈希运算,请检查您的模型 您收到了什么错误?您是否试图让他们使用用户名而不是电子邮件登录?请检查此处的步骤,看看这是否有助于@Amo,没有错误,只需重定向到auth/login即可@maytham-ɐɥıλɐɯ,我已经遵循了这些步骤@安德烈·韦伯我两个都试过了。我看到AuthenticatesUser类有以下三元:property\u exists($this,'username')$此->用户名:“电子邮件”代码>我想知道我是否调用了错误的中间件?您的用户表中是否有一个名为name的列?我更新了我的原始问题,以反映我使用Hash::check()
方法时出现的错误。
$password = Hash::make('yourPasswordString');
$result = Hash::check('yourPasswordString', $password); //returns true