我使用Meteor.userId()检查用户是否已登录。当用户未登录(Meteor.userId()为null)和用户登录(Meteor.userId()不为null)时,如果用户已登录并且浏览器已刷新Meteor,则此方法效果很好。 userId()丢失。
社区有哪些建议可以跟踪用户是否已登录?如果用户已登录并且浏览器已刷新,是否应该将用户重定向到登录页面?用户登录后是否应该将Meteor.userId()保留在本地存储中(我认为它不起作用)?
更新1: MainNavBar在对App.vue的方法调用中显示用户是否基于Meteor.userId()
登录。
MainNavBar.vue
<li class="nav-item d-xl-block" v-if="(this.$root.currentUserId==null)">
<router-link class="nav-link" v-bind:to="{ name: 'register' }">Register</router-link>
</li>
<li class="nav-item d-xl-block" v-else>
<a class="nav-link" href='' data-cy="logout" v-on:click="Logout()">Log out</a>
</li>
App.vue:
<script>
import { mapGetters } from 'vuex';
import { Meteor } from 'meteor/meteor';
export default
{
computed: {
...mapGetters('layout', ['showCart',]),
},
meteor:
{
currentUserId()
{
return Meteor.userId();
},
},
}
</script>