laravel登录手册

时间:2018-11-07 08:35:42

标签: php laravel forms

我尝试不使用php artisan make:auth进行登录。我不知道为什么我的select语句显示登录失败,尽管我输入正确。我希望有人能帮助我。下面我附上代码。预先感谢

public function shw(Request $request)
    {
        $email = $request->input('email');
        $password = $request->input('password');

        $checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->get();
        if($checkLogin === true)
        {
            echo "Login Successfull";
            return redirect('/dashboard');
        }
        return "fail";
    }

    /**

4 个答案:

答案 0 :(得分:0)

我真的建议您在Laravel中使用Auth函数。已经使用您需要的安全性构建了这一版本。 (为什么要使用自己的?)

默认情况下,密码哈希存储在数据库中,而不是纯文本密码。您应该使用内置的Auth Facade

赞:

use Illuminate\Support\Facades\Auth;

// Get the currently authenticated user...
$user = Auth::user();

// Get the currently authenticated user's ID...
$id = Auth::id();

当$ user或$ id为空时,您可以假定该用户未登录。

您可以通过此示例进行检查

if (Auth::check()) {
    // The user is logged in...
}

但是我总是喜欢在您的路由上使用中间件auth

Route::put('post/{id}', function ($id) {
    //
})->middleware('auth');

也许this会为您提供帮助。

答案 1 :(得分:0)

问题是 admin 表。没有通过以下方式创建的管理表:

php artisan make:auth

负责用户的表是用户表。所以试试这个:

DB::table('users')->where(['email'=>$email,'password'=>$password])->get();

答案 2 :(得分:0)

使用如下代码:

$user = User::where('email',$request->email)->first();
    if ($user && $user->active && \Hash::check($request->password, $user->password)) {
// do something
}

答案 3 :(得分:0)

如果未对密码进行散列,则只需更改这些行

public function shw(Request $request)
{
    $email = $request->input('email');
    $password = $request->input('password');

    $checkLogin = DB::table('admin')->where(['email'=>$email,'password'=>$password])->first();
    if(!is_null($checkLogin))
    {
        echo "Login Successfull";
        return redirect('/dashboard');
    }
    return "fail";
}