Php Laravel 4届会议获胜';无法跨页面加载持久化

Php Laravel 4届会议获胜';无法跨页面加载持久化,php,session,cookies,laravel-4,Php,Session,Cookies,Laravel 4,我想把它集成到我的Laravel4.1项目中。密码流进行得很顺利,但在编写授权代码流时,我遇到了一些会话中的奇怪问题 生成请求将导致此功能,其中已对登录用户进行筛选 Route::get('security/authorize', array('before' => 'check-authorization-params|auth', function() { [...] })); 来宾被重定向到要登录的表单 Route::get('security/login', array(

我想把它集成到我的Laravel4.1项目中。密码流进行得很顺利,但在编写授权代码流时,我遇到了一些会话中的奇怪问题

生成请求将导致此功能,其中已对登录用户进行筛选

Route::get('security/authorize', array('before' => 'check-authorization-params|auth', function()
{
    [...]
}));
来宾被重定向到要登录的表单

Route::get('security/login', array('before' => 'guest' ,function()
{
    return View::make('users.login');
}));
Wich将引导用户登录并重定向到他打算执行的请求:

public function login()
{
    $creds = array(
        'email' => Input::get('email'),
        'password'=>Input::get('password')
    );

    if(Auth::attempt($creds, true))
    {
        return Redirect::intended('/');
    }

    return Redirect::to('security/login');
}
问题是,尽管有一个肯定的Auth::trument(),我仍然被
Auth
过滤器重定向。 我做了一些简短的测试,通过设置和读取从未到达下一个请求的会话数据来检查有什么问题,所以我发现我必须处理会话

这是我的会话配置文件

<?php
return array(
'driver' => 'database',
    'lifetime' => 120,
    'expire_on_close' => false,
    'files' => storage_path().'/sessions',
    'connection' => 'mysql',
    'table' => 'sessions',
    'lottery' => array(2, 100),
'cookie' => 'laravel_session',
'path' => '/',
'domain' => null,
);

结果是,我没有在用户模型中正确设置身份验证标识符。
从这个改变它

public function getAuthIdentifier()
{
    return $this->email;
}
对此

public function getAuthIdentifier()
{
    return $this->id;
}

修复了所有问题。

基于此问题,这似乎是一个奇怪的问题。。。但是您是否碰巧使用了Chrome?Redirect::designed(“/”);Redirect::designed()函数接受一个默认参数,以便在sessionI中没有url.designed时返回,因为我在safari上,但我在Chrome、Firefox甚至Google上测试了这个参数IE@AyobamiOpeyemi你说得对,我应该设置回退,但这不是导致我的会话出现问题的原因。你是否被重定向到“/security/login”?