LARAVEL 5:在auth重定向后需要保留查询字符串

时间:2015-07-01 20:57:32

标签: authentication redirect laravel-5

我有一个通过电子邮件发送的链接。例如,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模型中创建的一种方法,用于检查登录用户的角色

2 个答案:

答案 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成功后仍然会重定向到包含所有原始数据的实际方法。希望这有用。