使用自己的API时无法获得laravel cookie laravel_token

时间:2018-11-02 06:30:42

标签: laravel api cookies vuejs2 laravel-passport

Cookie在浏览器中可用,但即使无法检查它是否存在也无法获取。 enter image description here

在laravel和vuejs应用程序上工作,其中我使用护照进行身份验证。 我是consuming own api with vuejs,所以我在kernel.php中添加了 CreateFreshApiToken 中间件

vuejs正在成功创建并发送laravel_token cookie,但是我无法使用vuejs或javascript读取它。

因为我无法检查cookie是否可用,所以我无法检查用户是否登录。

我如何告诉vuejs用户已登录并转到预期的路线?

目前,我将access_token保存在 localStorage 中并随每个请求一起发送,但我正在寻找一种解决方案,该解决方案可以帮助使用laravel内置的 laravel_token cookie进行身份验证和授权用户。

更多详细信息

如果我在控制台中运行此命令,则会得到响应

document.cookie.match('XSRF-TOKEN')

但是

document.cookie.match('laravel_token')

返回空值

我认为上面显示的图像中的刻度图标是将其设为私有或无法访问的标志。

更新

我从互联网上找到了一些东西 enter image description here 但是我仍然想知道如何告诉vuejs应用程序用户是否已登录?

更新2

目前,我是从vuejs手动发送标头中的access_token,并且工作正常。

if(localStorage.getItem('laravel_token') !== 'undefined' &&  !! localStorage.getItem('laravel_token') == true){

    window.axios.defaults.headers.common['Authorization'] = 'Bearer '+ localStorage.getItem('laravel_token')
}

1 个答案:

答案 0 :(得分:0)

您可以通过一些变通方法在LoginController中实现身份验证的方法,并返回json成功代码。然后,您可以接收此代码并存储。

....
private FindIslands fi;

public Guicko() {
    ....
    textField2.addActionListener(new ActionListener() { 
        @Override
        public void actionPerformed(ActionEvent e) {
            fi = FindIslands.getInputFromCommand();
        }
    });

    startButton.addActionListener(new ActionListener() { 
        @Override
        public void actionPerformed(ActionEvent e) {
            String comps = fi.connectedComponents();// method needs to return a string
            textArea1.setText(comps);
        }
    });
}

使用axios ...

public function authenticated(Request $request, $user)
{
    // return redirect()->intended($this->redirectPath());
    return json_encode(['authenticated' => true]);
}