当前位置: 首页 > 知识库问答 >
问题:

Laravel重定向离开方法重定向到自己的域

暴奕
2023-03-14

我正在编写一个基于API的LaravelAPI。网址。com,用于托管在www.myurl上的应用程序。com在不同于使用Laravel Fortify的Lravel API的服务器上。

当用户在生成的链接上验证他们的电子邮件时,问题就来了,他们不是被重定向到外部应用程序,而是被重定向到API,而是在他们的浏览器上。

文档中声明此配置在“身份验证”中。pgp中间件可以工作:

<?php

namespace App\Http\Middleware;

use Illuminate\Auth\Middleware\Authenticate as Middleware;

class Authenticate extends Middleware
{
    /**
     * Get the path the user should be redirected to when they are not authenticated.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return string|null
     */
    protected function redirectTo($request)
    {
        if (! $request->expectsJson()) {
            return url(env('SPA_URL') . '/dashboard');
        }
    }
}

SPA_URL设置为www.myurl.com.

这将重定向到api.url.com/www.myurl.com/dashboard显然会导致404响应。

然后,我尝试对控制器本身调用一个操作

public function redirectDashboard(Request $request){
        return redirect()->away('www.myurl.com/dashboard');
    }

这再次重定向到api。网址。com/www.myurl。com/仪表板明显导致404响应。

我不知道为什么重定向()-

任何帮助都将不胜感激,谢谢。

共有2个答案

酆君墨
2023-03-14

我终于意识到重定向发生了什么:我使用的是重定向()帮助函数,而不是重定向::c小姑娘。helper函数将当前域附加到任何urlaway方法调用,而重定向::class允许您重定向到任何需要的地方。

钦宏义
2023-03-14

方法将重定向到请求。

尝试编写新的中间件

public function handle($request, Closure $next)
{
    //check here if the user is authenticated
    if ( ! $this->auth->user() )
    {
        // here you should redirect to another site
        return redirect(env('SPA_URL') . '/dashboard');
    }

    return $next($request);
}
 类似资料:
  • 问题内容: 正在执行我的第一个Laravel 5项目,并且不确定在哪里或如何在我的应用程序上放置强制HTTPS的逻辑。关键在于,有许多域指向该应用程序,并且只有三分之二使用SSL(第三个是后备域,长话短说)。所以我想用我的应用程序的逻辑而不是.htaccess来处理这个问题。 在Laravel 4.2中,我使用以下代码完成了重定向: 我在想应该在中间件中实现类似这样的东西,但是我不能完全理解使用它

  • 我们使用拉维5。要将http连接重定向到https,请使用中间件HttpsProtocol。 在我们的4个测试用例中,只有1个正确工作(最后一个重定向)。其他3种情况的中间件添加了url extra index.php。 http://www.aqualink.az/index.php ---

  • 我找不到我的谜题。当我加载页面时,chrome会说:localhost页面不工作,localhost重定向了你太多次。我猜这是在创造一个循环。我可能做错了一些我无法得到的事情。这是我的密码。 授权控制器 模型 Authenticate.php config/auth.php

  • 问题内容: 我正在使用Laravel Framework 5.4.10,并且正在使用常规身份验证 提供。我想保护整个应用程序,并在登录后将用户重定向到/ themes。 我有4个控制器:ForgotPasswordController.php,LoginController.php,RegisterController.php和ResetPasswordController.php。我已经将此行编

  • 我正在使用Asgard CMS,这是一个基于Laravel 5.1构建的模块化CMS,并且在我创建的特定模块中面临上述问题。 整个站点都有很多post请求和重定向,这很好,但是当涉及到配置文件模块时,我遇到了这个问题。 我将一个编辑请求发布到一个路由,在完成一些工作后,我重定向回路由。当我重定向时,它会显示一个空白页面,上面写着“重定向到”http://www...“首先写入,然后在2-3秒后重定

  • 我想知道301和307重定向之间的区别。 我希望通过自制url重定向器生成反向链接,我希望任何“链接果汁”或“页面排名果汁”都能直接从原始主页流向最终url,但如果其中一个原始主页出现问题,我希望能够通过删除该特定页面的重定向链接来关闭该链接。有道理? 我的理解是,301是永久性的,这意味着谷歌将看到301并更新其缓存的URL作为最终目的地,而不管我以后是否取消重定向。 如果我使用307,它将不会