无法登录Laravel

时间:2017-01-22 12:40:36

标签: php html5 laravel laravel-5.3

无法登录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');
});

请帮助

1 个答案:

答案 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