0

我正在使用 Meteor.js 的内置帐户功能。当用户通过 cookie 登录时,Meteor 似乎首先加载页面的“注销”版本,然后自动登录用户并重新加载页面以获取“登录”版本。

您可以在示例派对应用程序中看到此行为:http: //vdawg-parties.meteor.com/ 注册,然后重新加载页面。它将加载已注销的页面,然后在 2-3 秒后切换到已登录的版本。

是否可以在页面加载时加载登录版本?加载一个页面然后立即切换到另一个页面是令人困惑的。

4

1 回答 1

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();
}
于 2013-06-02T21:16:56.817 回答