首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 4认证

Laravel 4认证
EN

Stack Overflow用户
提问于 2013-09-05 18:46:43
回答 3查看 1.2K关注 0票数 0

我很难让身份验证与laravel 4一起工作。当用户在表单中输入他们的电子邮件和密码时,这是我的全部功能。

代码语言:javascript
复制
public function getSignin() {
    $return_arr = array();

    $email = Input::get('email');
    $password = Input::get('password');

    $validation = Validator::make(
                    array(
                'Email' => $email,
                'Password' => $password
                    ), array(
                'Email' => 'required|Email',
                'Password' => 'required'
                    )
    );

    if ($validation->passes()) {
        $pass = base64_encode($password);

        $details = array ('email' => $email, 'password' => $pass);

        if (Auth::attempt($details)) {
            $return_arr['frm_check'] = 'success';
            $return_arr['msg'] = 'logged in';
        } else {
            $return_arr['frm_check'] = 'error';
            $return_arr['msg'] = 'log in failed';
        }
    } else {
        $errors = $validation->messages();
        $return_arr['frm_check'] = 'error';
        $return_arr['msg'] = $errors->first();
    }

    echo json_encode($return_arr);
    $this->layout = null;
    return;
}

即使电子邮件和密码在数据库中的同一行,它仍然返回登录失败,想知道是否有人能对这种情况有所了解?

如果我遗漏了其他重要的细节,请告诉我,我会马上把它们发出去。提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-09-05 19:30:54

根据你的评论..。

在创建$user时,在将密码保存到数据库中之前,请使用Hash::make($password)使用BCrypt散列密码。

然后,当用户登录时只使用Auth::attempt($credentials),但不要使用base_64对其进行加密,那么Auth方法将为您完成这一切!

更多关于优秀的Laravel文档:http://laravel.com/docs/security

票数 3
EN

Stack Overflow用户

发布于 2013-09-05 19:03:25

除非您已经在save()上对密码进行了base64编码,否则从代码中删除这一行:

代码语言:javascript
复制
$pass = base64_encode($password);

并编辑此一,以:

代码语言:javascript
复制
$details = array ('email' => $email, 'password' => $password);

Auth::attempt()将为您使用比base64更安全的工具。

编辑:

要正确保存密码,必须执行以下操作:

代码语言:javascript
复制
$user = new User;
$user->email = 'me@me.com';
$user->password = Hash::make('mySuperSecretPassword');
$user->save();

然后,您可以尝试用户只需传递它未散列。

票数 0
EN

Stack Overflow用户

发布于 2013-09-11 13:02:47

下面是我写的一个教程,这可能会有帮助!

https://medium.com/on-coding/e8d93c9ce0e2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18643736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档