【问题标题】:Laravel does not save session after a redirect重定向后 Laravel 不保存会话
【发布时间】:2021-11-29 14:58:25
【问题描述】:

我正在使用来自 Abraham 的 TwitterOAuth 框架,以通过 Twitter 帐户登录我的网络应用程序。

我首先使用全局 laravel 会话助手将 token_secret 保存在会话中,然后将用户重定向到 twitter 上的授权页面,如下所示:

session(['token_secret' => $requestToken['oauth_token_secret']]);
return Redirect()->away($url);

在重定向之前,token_secret 按预期保存在会话中,但是当 twitter 重定向回我的站点时,它不是。我这样检查:

dd(session()->all());

它与 PHP 会话处理一起工作,但我决定改用 laravel 会话助手。 我的路线是这样的:

Route::group(['middleware' => 'web'], function () {
    Route::prefix('/twitter')->group(function () {
        Route::get('/authenticate', [TwitterController::class, 'authenticate'])->name('twitter_authenticate');
        Route::get('/saveCredentials', [TwitterController::class, 'saveCredentials'])->name('twitter_saveCredentials');
    });
});

有谁知道我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: php laravel session twitter twitter-oauth


    【解决方案1】:

    您可以使用重定向和 with 并自动将数据发送到另一个路由。

    return redirect('/dashboard')->with('token_secret', $requestToken['oauth_token_secret'])
    

    【讨论】:

    • A code-only answer is not high quality。虽然此代码可能很有用,但您可以通过说明其工作原理、工作方式、何时应该使用以及它的局限性来改进它。请edit您的回答包括解释和相关文档的链接。
    • 感谢您的回答!我已经试过了,它也不起作用。对我来说,感觉就像我需要将会话重新分配给用户,会话的文件仍然存在于我的项目中,并带有预期的令牌。有没有办法在重定向后给用户他的会话?
    猜你喜欢
    • 2016-08-27
    • 1970-01-01
    • 2020-10-25
    • 2012-11-17
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多