我希望在请求后使用自己的中间件对用户进行身份验证:
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Auth\Middleware\Authenticate;
class AuthenticateAfter extends Authenticate
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string[] ...$guards
* @return mixed
*
* @throws \Illuminate\Auth\AuthenticationException
*/
public function handle($request, Closure $next, ...$guards)
{
$response = $next($request);
$this->authenticate($request, $guards);
return $response;
}
}
我扩展了Illuminate\Auth\Middleware\Authenticate
并修改了handle
方法,使其在中间件之后运行。
然后在我的内核中以及正确的路径上对其进行声明。
但是登录后,我总是被踢回到以前的页面。
我想控制我要转到的页面,所以在启动中间件之前,我要进行以下操作:
$request->session()->put('url.intended', 'my-test-url');
但是它无法重定向到该路由。
如何获取它以重定向到自定义路由?
答案 0 :(得分:0)
尝试:返回redirect('view')或return redirect()-> to('/ route')
答案 1 :(得分:0)
尝试一下,
public function handle($request, Closure $next, ...$guards)
{
$response = $next($request);
$this->authenticate($request, $guards);
return redirect('/your_page_path');
}
仅供参考,这是我用来验证用户身份的内容:
public function handle($request, Closure $next)
{
if (auth()->user() && auth()->user()->type != 'admin')
{
return redirect('/unauthorized');
}
return $next($request);
}