重定向标头在 Laravel 中可见而不是隐藏

Posted

技术标签:

【中文标题】重定向标头在 Laravel 中可见而不是隐藏【英文标题】:Redirection headers is visible instead hidden in Laravel 【发布时间】:2021-07-22 13:46:40 【问题描述】:

我使用 Laravel 8(最新版本),我希望将用户重定向到 Twitter 以记录他们。

我意识到以前版本的 Laravel 也有这种显示。

我使用这行代码:

return redirect()->away($url);
// or
return redirect($url);

为什么,当我使用这行代码通过 Twitter 登录用户时,我在登录页面和 Twitter 登录页面之间的页面上显示了这个?

我在控制器中的登录方法

use Abraham\TwitterOAuth\TwitterOAuth;

public function login(Request $request): string

    $connection = new TwitterOAuth(
        config('services.twitter.client_id'),
        config('services.twitter.client_secret')
    );

    $requestToken = $connection->oauth('oauth/request_token', [
        'oauth_callback' => config('services.twitter.redirect'),
    ]);

    $request->session()->put('oauth_token', $requestToken['oauth_token']);
    $request->session()->put('oauth_token_secret', $requestToken['oauth_token_secret']);

    $url = $connection->url('oauth/authorize', [
        'oauth_token' => $requestToken['oauth_token'],
    ]);

    return redirect()->away($url);

重定向是可见的,而且很难看。

【问题讨论】:

也许这个答案可以帮助你:***.com/questions/31639278/…? 你在控制器内返回重定向是否正确 @ChinhNguyễn 我在问题中添加了更多代码。 【参考方案1】:

为您的登录函数声明了错误的返回值,您应该将返回类型 string 更改为 RedirectResponse(或者,您可以完全删除类型声明)

public function login(Request $request): string

到:

public function login(Request $request): \Illuminate\Http\RedirectResponse

【讨论】:

以上是关于重定向标头在 Laravel 中可见而不是隐藏的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 验证器抛出异常而不是重定向回来

如何将所有访客请求重定向到 Laravel 应用程序中的登录页面?

Beyondcode\laravel-websockets 它正在重定向到 wss 而不是 localhost 上的 ws

Laravel 5.4 POST 到 API 重定向 302 而不是返回验证错误

Struts2页面重定向

使用授权标头重定向到操作