在我的应用程序中,起始网址localhost:3000
将我带到登录页面,登录后,现在每个工作正常都需要/afterlogin
,一旦我删除/afterlogin
并输入它将需要再次登录页面如何在登录后阻止该URL并留在流星的主页中?
答案 0 :(得分:1)
而不是使用/作为用户登录的URL,而不是" Meteor.js"要做的是在主模板中使用条件逻辑为您的网站的目标网页。 Accounts的Meteor文档解释了应用程序应该:
使用
{{#if currentUser}}
检查用户是否已登录。
查看login example application,了解{{#if currentUser}}
在实践中的应用方式。为方便起见,我已复制下面的模板:
<template name="main">
{{#if loggingIn}}
<div class="loading">Loading...</div>
{{else}}
{{#if currentUser}}
<div class="msgDiv">
Signed in as: {{currentUser.services.google.email}}
</div>
<a href="#" id="logout">Sign out</a>
{{else}}
<a href="#" id="login">Sign In With Google</a>
{{/if}}
{{/if}}
<div class="msgDiv">
Client can see {{numGizmos}} gizmos.
</div>
</template>
在&#34; main&#34;模板,您可以看到应用程序使用Spacebars来检查以下条件:
loggingIn
为真(用户正在登录),则显示加载屏幕loggingIn
为false
且currentUser
为true
(用户已登录),则显示包含已登录用户信息的屏幕< / LI>
loggingIn
为false
且currentUser
为false
(用户尚未登录),则会显示登录提示注意:在此示例应用程序中,它们使用accounts-google
身份验证包演示登录,但您可以对基于accounts-password
的基本登录使用相同的模式。其他身份验证包包括accounts-facebook
,accounts-github
,accounts-twitter
和社区包。
如果您在应用程序中使用iron:router
,那么您还可以使用以下逻辑保护应用程序URL(从文档中获取):
Router.onBeforeAction(function() {
if (! Meteor.userId()) {
this.render('login');
} else {
this.next();
}
});
答案 1 :(得分:0)
第一步从npm下载“alasql、XLSX、moment”包//meteor npm install alasql
步骤 2 将 alasql 、 XLSX 和 moment 导入我们必须创建 excel 的文件形式
import alasql from 'alasql';
import XLSX from 'xlsx';
import moment from "moment";
alasql.utils.isBrowserify = false;
alasql.utils.global.XLSX = XLSX;
步骤 3 在同一个文件中通过调用该方法从服务器获取数据
Meteor.call('getAllUserData', function ( err,userData ) { //get data form server call
if ( !_.isEmpty( userData ) )
{
var opts = [
{sheetid:'User List',header:true}
];
alasql('SELECT INTO XLSX("User-List-'+moment(new Date()).format('DD-MM-YYYY')+'.xlsx",?) FROM ?',
[opts,[
userData
]]);
}
})