【问题标题】:Laravel 5 Session variables not persisting after redirects Twitter OAuthLaravel 5 会话变量在重定向 Twitter OAuth 后不会持续存在
【发布时间】:2015-08-13 05:51:46
【问题描述】:

使用 Codebird,我在这里请求 oauth 令牌

$reply = $cb->oauth_requestToken(array(
            'oauth_callback' => 'http://localhost/laravel/public/callback'
        ));
        print_r($reply);
        $cb->setToken($reply->oauth_token, $reply->oauth_token_secret);
        Session::put('oauth_token', $reply->oauth_token);
        Session::put('oauth_token_secret', $reply->oauth_token_secret);
        Session::put('oauth_verify', true);
        Session::save();
        $auth_url = $cb->oauth_authorize();
        header('Location: ' . $auth_url);
        die();

这里的变量都被正确地放入会话中(因为我可以通过在打印后放置一个 die() 来测试它)

来自 Twitter 授权的回调代码

$verify = $_GET['oauth_verifier'];

    Session::put('oauth_token', $_GET['oauth_token'] );
    Session::put('oauth_verify', true);

    Session::save();
    var_dump(Session::all());
    header('Location: ' . "http://localhost/laravel/public/test?oauth_verifier=".$verify);
    die();

这里的var_dump不显示上面代码段中存储的会话变量,重定向到localhost后,会话变量为空。

我在 Laravel (5) 中有什么遗漏了吗?

【问题讨论】:

    标签: php session laravel twitter oauth


    【解决方案1】:

    问题出在配置/会话中

    'driver' => env('SESSION_DRIVER', 'file')
    

    env 'SESSION_DRIVER' 为空,将行更改为:

    'driver' =>  'file'
    

    解决了问题,现在会话变量在重定向上仍然存在。

    【讨论】:

    • 我的本地开发机器上的同样问题,这为我解决了。
    猜你喜欢
    • 2016-04-14
    • 2015-06-15
    • 2015-08-26
    • 1970-01-01
    • 2020-12-14
    • 2019-01-05
    • 2017-02-16
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多