我设法用laravel护照登录。我有令牌,很棒。但我想保持登录用户信息,名称,头像等。
我的登录程序获得了oauth令牌。在仪表板组件中,我对用户数据进行api调用。
我应该将它们保存在全局Vue对象中还是使用Vuex?这样安全吗?
答案 0 :(得分:3)
您可能会考虑的一些选项
我的建议是存储身份验证令牌 - 这是成功调用后端所需的 - 在cookie中。这样,您可以通过发送的每个请求轻松访问它。
要存储我建议的用户信息,要么创建包装组件,要么使用root vue实例。以下示例应该清除这一点。
包装主页组件(内嵌模板)
data: function() {
return { userinfo: {} }
},
created: function() {
// load your user info
}
然后在index.html / main视图中使用它
<body>
<home inline-template>
<!-- any stuff here -->
<!-- pass the user prop to every component that is shown in the userinfo -->
<router-view :user="userinfo"></router-view>
</home>
</body>
然后,路由器视图中显示的组件可以访问用户prop
示例组件
...
props: ['user'],
...
<template>
<span>{{ user.name }}</span>
</template>
...
重要提示:为了完成这项工作,您还需要将 props:true 添加到路线的定义中。这里详细解释了所有内容:https://router.vuejs.org/en/essentials/passing-props.html
备注:如果您不想在包装组件中加载userdata,可以将其加载到其他任何位置,并使用事件总线将结果传输到包装组件。但是,您应始终只有一个关于用户信息的真相来源。只能将它存放在一个地方。
答案 1 :(得分:1)
我发现会话助手非常容易使用,它解决了全局使用oauth令牌的问题:
请参阅:https://laravel.com/docs/5.4/session,标题:全局会话助手