如果在 Laravel 5.3 中通过身份验证,则重定向
Posted
技术标签:
【中文标题】如果在 Laravel 5.3 中通过身份验证,则重定向【英文标题】:Redirect if authenticated in Laravel 5.3 【发布时间】:2016-12-30 17:33:06 【问题描述】:我在Laravel 5.3
中使用Auth
脚手架,并更改了auth
的路线。所以我使用/signin
和/signup
代替/login
和/register
。
在Laravel 5.2
中,我们默认在auth
中间件中有这个,
public function handle($request, Closure $next, $guard = null)
if (Auth::guard($guard)->guest())
if ($request->ajax() || $request->wantsJson())
return response('Unauthorized.', 401);
return redirect()->guest('login');
return $next($request);
如果用户没有登录,这将重定向到 login
路由。在 Laravel 5.3
我们有这个,
public function handle($request, Closure $next, $guard = null)
if (Auth::guard($guard)->check())
return redirect('/');
return $next($request);
这会将已登录的用户重定向到默认路由/
。所以他们在 5.3 中改变了它。我们没有定义访客去哪里,而是定义登录用户去哪里。
我的问题是,我将如何本地到 Laravel 5.3 更改客人去?
因为目前,尝试访问受中间件保护的站点的人会自动以/login
路由结束。我想将其更改为 /signin
,但我找不到任何地方可以自定义此行为。
有什么想法吗?
【问题讨论】:
【参考方案1】:你可以在 app.blade.php 中用 JS 试试这个:
@if (Auth::guest())
<script type="text/javascript"> window.location = "url('/login')"; </script>
@endif
【讨论】:
【参考方案2】:如果客人离开,我将如何“原生”更改为 Laravel 5.3?
Looks likeapp/Exceptions/Handler.php
中有一个新的unauthenticated()
方法,它处理未经身份验证的用户并重定向到login
。
由于这是您应用的一部分,您没有理由不能自定义它以重定向到其他地方。
【讨论】:
谢谢!上帝……除了那里,我到处找。以上是关于如果在 Laravel 5.3 中通过身份验证,则重定向的主要内容,如果未能解决你的问题,请参考以下文章
如果用户在 iframe 中通过身份验证而不是重定向父窗口,则 iframe
Laravel 5.3 Passport API 在 Postman 中使用个人访问令牌未经身份验证