首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Laravel 4实现“记住我”功能

使用Laravel 4实现“记住我”功能
EN

Stack Overflow用户
提问于 2013-08-31 18:57:09
回答 1查看 7.1K关注 0票数 1

我刚到Laravel,试着做一个非常简单的登录表单。

此表单有“记住我”复选框。我试图使用Cookie::make()实现它的功能,但结果是我需要返回一个Response才能保存它。

当我在浏览器中检查从localhost存储的cookie时,我没有找到一个名为username的cookie。我做了一些研究,结果发现我必须将cookie附加到一个Response中,然后返回它。

问题是,我不想返回一个Response !!

在我的学习过程中,我还没有上过Auth课程。因此,不使用该类的解决方案将更合适。

这是我的密码:

代码语言:javascript
运行
复制
public function processForm(){
    $data = Input::all();
    if($data['username'] == "rafael" & $data['password'] == "123456"){
        if(Input::has('rememberme')){
            $cookie = Cookie::make('username', $data['username'], 20);
        }
        Session::put('username', $data['username']);
        return Redirect::to('result');
    } else {
        $message_arr = array('message' => 'Invalid username or password!');
        return View::make('signup', $message_arr);
    }
}

我的signup.blade.php

代码语言:javascript
运行
复制
@extends('layout')

@section('content')
    @if(isset($message))
        <p>Invalid username or password.</p>
    @endif
    <form action="{{ URL::current() }}" method="post">
        <input type="text" name="username"/>
        <br>
        <input type="text" name="password"/>
        <br>
        <input type="checkbox" name="rememberme" value="true"/>
        <input type="submit" name="submit" value="Submit" />
    </form>
@stop

routes.php

代码语言:javascript
运行
复制
Route::get('signup', 'ActionController@showForm');

Route::post('signup', 'ActionController@processForm');

Route::get('result', 'ActionController@showResult');
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-31 19:09:02

您应该查看Laravel 4关于用户身份验证的文档,这些文档可以在以下站点找到:

http://laravel.com/docs/security#authenticating-users

基本上,您可以通过将$data传递给Auth::to ()对用户进行身份验证。将true作为第二个参数传递给Auth::the (),以记住用户进行以后的登录:

代码语言:javascript
运行
复制
$data = Input::all();

if (Auth::attempt($data, ($data['rememberme'] == 'on') ? true : false)
    return Redirect::to('result');
else
{
    $message_arr = array('message' => 'Invalid username or password!');
    return View::make('signup', $message_arr);
}

您应该使用Laravel的方法进行身份验证,因为它会处理密码提醒等问题。

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

https://stackoverflow.com/questions/18551725

复制
相关文章

相似问题

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