php - Laravel 登录后将用户重定向到原始目的地
问题描述
在我的 Laravel 应用程序中,我有一个只能由 Auth 用户访问的私有页面。我也在使用社交登录,所以当用户在没有登录的情况下进入私人页面时,Laravel 将用户发送到登录页面,成功登录后,用户被发送回原始目的地(私人页面)。只有当用户通过 Laravel 内置的 Auth 系统登录时,但当用户通过 Social Login 方法登录时,用户将被引导到主页。
这是我登录后的社交登录处理程序:
public function handleProviderCallback($provider)
{
$user = Socialite::driver($provider)->user();
$authUser = $this->findOrCreateUser($user, $provider);
Auth::login($authUser, true);
return redirect('/home');
}
如果会话中存在用户,我如何将用户发送到原始目的地,否则将他们送回家中。
解决方案
文档非常简短地提到它,但 Laravel 有一个内置方法:
return redirect()->intended('/home')
每当 Auth 中间件因为用户未登录而重定向用户时,他的原始 url 将被存储。intended
检查该 url 是否被存储并使用它,或者您作为参数提供的后备。
推荐阅读
- python - 为什么不同方法的不同行为
- regex - 在 htacces 中将正则表达式用于 Require 语句
- node.js - 如何在 Node.js 应用程序中处理向 Firestore 数据库添加多达 10 万个条目
- android - 从 android 中的 aws s3 服务器访问私有图像 url
- laravel - Laravel Passport:使用自定义用户名和密码创建令牌
- angular - 如何在 ngx-guided-tour 的弹出窗口中更改文本(和其他)?
- sql-server - SQL Server 错误日志增长过快。无法真正说出错误消息是关于什么的
- amazon-web-services - 如何在 Windows 10 上安装 aws iot greengrass
- typescript - 打字稿变量值不显示更新值
- laravel - Laravel Eloquent:动态地从一种方法转移到另一种方法