我在Meteor.js中使用内置帐户功能。当用户通过cookie登录时,Meteor似乎首先加载页面的“已注销”版本,然后自动登录用户并重新加载页面以获取“登录”版本。
您可以在示例方应用中看到此行为:http://vdawg-parties.meteor.com/ 注册,然后重新加载页面。它将加载登出的页面,然后2-3秒后将切换到登录版本。
是否可以在页面加载时加载登录版本?加载页面然后立即切换到另一页是很困惑的。
答案 0 :(得分:1)
流星是建立在“线上数据”类型结构之上的。这意味着,最初,当您的项目加载时,服务器和浏览器之间没有发送实际数据。因此,无需等待数据下载就无法确定用户是否以流行方式登录。
这是meteor在用户登录时在localStorage
中存储登录数据的原因。
加载屏幕
当流星从服务器下载/同步本地集合时,最好有一个加载屏幕,等待用户的登录完成:
客户端HTML
<template name="YourLoggedInSection">
{{#if isLoaded}}
..your logged in section/or place to log in
{{else}}
<h1>Loading</h1>
{{/if}}
</template>
客户端js
Template.YourLoggedInSection.isLoaded = function() {
return Accounts.loginServicesConfigured();
}