【发布时间】:2021-06-14 05:34:15
【问题描述】:
我正在为 www.myurl.com 上托管的应用程序编写一个托管在 api.url.com 上的 Laravel API,该应用程序与使用 Laravel Fortify 的 Lravel API 不同。
当用户在生成的链接上验证他们的电子邮件时,问题就出现了,他们不会被重定向到外部应用程序,而是再次返回到 API,而是在他们的浏览器上。
文档声明 Authenticate.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');
}
}
}
其中 .env 中的 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.url.com/www.myurl.com/dashboard显然导致404响应。
我不知道为什么 redirect()->away 仍然会重定向到同一个 API 域上的 url。
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
添加 https:// 然后尝试
return redirect()->away('https://www.myurl.com/dashboard');
标签: php laravel redirect laravel-8 urlbinding