我有一个注册表,用于注册和登录用户。
我在受保护路由的控制器中使用$this->middleware('auth');
来提示用户登录。登录表单将POST
请求传递给Laravel的AuthController w /用户名和密码:
<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>
路线:
//authentication routes
Route::get('auth/login', 'Auth\AuthController@getLogin');
Route::post('auth/login', 'Auth\AuthController@postLogin');
Route::get('auth/logout', 'Auth\AuthController@getLogout');
// Registration routes...
Route::get('auth/register', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');
我尝试过使用身份验证系统的现成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
答案 0 :(得分:0)
这可以是CSFR令牌吗?由于您没有使用外观来调用表单,因此您可能需要在打开表单标记后添加令牌调用。
这是电话:
{!! csrf_field()!!} {! Form :: hidden(&#39; token&#39;,$ token)!!}
答案 1 :(得分:0)
如果您使用的是内置登录功能,Laravel也会对您的密码进行哈希处理,因此如果您正在哈希密码,请检查您的模型。