无法登录laravel,每次重定向到登录页面而不是主页时登录,这是我的代码
这是我的控制器代码,我写了d登录代码
BufferedReader br = new BufferedReader(new InputStreamReader( con.getInputStream(), StandardCharsets.UTF_8));
br.mark(256);
char firstChar = br.read();
System.err.println(Integer.toString(firstChar));//for debug
if (firstChar != 0xFEFF) {//char of BOM
br.reset();
}
StringBuilder sb = new StringBuilder();
while ((output = br.readLine()) != null) {
sb.append(output);
}
路由代码登录后应该去的地方
public function loginprocess(Request $request){
$username = $request->get('username');
$password = $request->get('password');
$checkuser = Users::selectRaw("Count(*) as Total")->where('email','=',$email)->first();
if(intval($checkuser->Total) > 0){
$getpassword = Users::select("password")->where('email','=',$email)->first();
if(password_verify($password,$getpassword->password)){
//if($username == $checkuser && $password == $getpassword){
$request->session()->set('email',$email);
return redirect('/home');
}else{
return redirect('/login');
}
}else{
return redirect('/login');
}
}
这是我的HTML代码
Route::group(['middleware' => 'checkuser'],function(){
Route::get('/home','HomeController@index');
});
请帮助
答案 0 :(得分:1)
因为您在此处调用的$email
变量$request->session()->set('email',$email);
在该行之前的任何位置都不存在。在$email = $request->get('email');
下面添加$password = $request->get('password');
。
现在,一些惯例。为什么你是Plural的Users
模特?
我想你想要自己滚动登录而不是使用默认登录;都好。但是,请对此进行一些研究。 Laravel提供了一种开箱即用的好方法:
if (Auth::attempt(['email' => $email, 'password' => $password])) {
// Authentication passed...
return redirect()->intended('home');
}
同时阅读您的代码。您似乎正在保存纯文本密码。请将哈希用户的密码作为习惯。 Laravel通过Hash::make('password');
开箱即用
在这里阅读更多https://laravel.com/docs/5.3