如何从Laravel/Passport获取Vuejs中的重定向url

如何从Laravel/Passport获取Vuejs中的重定向url,laravel,vue.js,vuejs2,laravel-passport,Laravel,Vue.js,Vuejs2,Laravel Passport,我正在Vue.js中构建一个简单的登录,其中我的后端位于laravel/passport中,用于身份验证方法。在实施passport之前,我有一个手动登录控制器,它从会话中获取重定向url如下: public function postLogin(Request $request) { $this->validate($request, User::$login_validation_rules); $data = $request->only('email', 'p

我正在
Vue.js
中构建一个简单的登录,其中我的后端位于
laravel/passport
中,用于身份验证方法。在实施
passport
之前,我有一个手动
登录控制器
,它从会话中获取
重定向url
如下:

public function postLogin(Request $request)
{
    $this->validate($request, User::$login_validation_rules);
    $data = $request->only('email', 'password');
    $intended_url = Session::get('url.intended', url('/'));
    Session::forget('url.intended');

   // Authentication codes

    return $intended_url, $user;
}
axios.post('/login', postData).then(response => {
     // computation of objects
    window.location.href = '/dashboard';
})
假设我的路由是
Route::post('/login','LoginController@postLogin)
现在,在控制器中,我正在计算如下内容:

public function postLogin(Request $request)
{
    $this->validate($request, User::$login_validation_rules);
    $data = $request->only('email', 'password');
    $intended_url = Session::get('url.intended', url('/'));
    Session::forget('url.intended');

   // Authentication codes

    return $intended_url, $user;
}
axios.post('/login', postData).then(response => {
     // computation of objects
    window.location.href = '/dashboard';
})
现在我在Vue文件中采用如下方式:

public function postLogin(Request $request)
{
    $this->validate($request, User::$login_validation_rules);
    $data = $request->only('email', 'password');
    $intended_url = Session::get('url.intended', url('/'));
    Session::forget('url.intended');

   // Authentication codes

    return $intended_url, $user;
}
axios.post('/login', postData).then(response => {
     // computation of objects
    window.location.href = '/dashboard';
})
现在,我使用的
Laravel\passport
的url已更改为
axios.post('/oauth/token',postData)


有人能告诉我如何将
预期的\u url
添加到此响应中,是否可以进入相同的
axios请求
,或者我必须调用另一个
axios请求

您可以设置返回到易于解析的Json对象,并且axios应该能够设置为自动解析它

public function postLogin(Request $request)
{
  $this->validate($request, User::$login_validation_rules);
  $data = $request->only('email', 'password');
  $intended_url = Session::get('url.intended', url('/'));
  Session::forget('url.intended');

  // Authentication codes

  return \Response::json([ 'url' => $intended_url, 'user' => $user], 200);
}
这将创建一个包含相关信息的Json对象,并使用正确的头传递它。在JS中,它应该类似于以下内容:

axios.post('/login', postData)
.then(
  response => {
    let JsonObj = JSON.parse(response.body)

    // computation of objects
    window.location.href = JsonObj.url;
  }
)

您可能需要进行一些测试,以查看返回的响应,然后再进行测试。

这不是问题所在,问题是,laravel passport有自己的url用于身份验证,该url固定为
/oauth/token
我不再使用
/login
登录后功能进行身份验证。