我有一个通过电子邮件发送的链接。例如,www.swings.com / jober?id = 3382& tok = jfli3uf
在这种情况下,我希望此人单击该链接,将其发送到登录页面(它执行此操作),然后将其定向到带有$ id和$ tok变量的控制器方法。我不能让那部分工作。有任何想法吗?我只使用RedirectIfAuthenticated类,这就是它的样子:
public function handle($request, Closure $next)
{
$user = $request->user();
if ($this->auth->check()) {
if($user && $user->hasRole('worker'))
{
return redirect('worker');
}
return redirect('home');
}
return $next($request);
}
hasRole是我在User模型中创建的一种方法,用于检查登录用户的角色
答案 0 :(得分:0)
通过链接with()方法重定向时,可以将数据刷新到会话:
// in your handle() method:
return redirect('home')->with($request->only('id', 'tok'));
// then in home controller method:
$id = session('id');
$tok = session('tok');
答案 1 :(得分:0)
在一些小时后,我可以找到解决方案:
ReturnIfAuthenticated未更改。我刚刚在我的控制器中添加了以下链接:
例如,路线将是:Route::get('worker', 'WorkerController@methodINeed');
在此方法中:
public function methodINeed() {
$id = Input::get('id');
$tok = Input::get('tok');
// Do what I need this variables to do
}
我不理解和无法正确理解的是,当用户是访客时,Laravel 5中的auth控制器会在auth成功后仍然会重定向到包含所有原始数据的实际方法。希望这有用。