如何使用Meteor登录用户

时间:2016-05-02 08:10:30

标签: meteor meteor-accounts

我已添加accounts-passworduseraccounts:unstyled

我在footer.html中包含了登录模板 -

{{#if showSignIn}}
    {{> atForm state="signIn"}}
{{/if}}

我在应用启动时对用户的创建进行了硬编码 -

import { Accounts } from 'meteor/accounts-base'

if (!Acounts.findUserByEmail('aidan@gmail.com')) {
  Accounts.createUser({
    username: 'Aidan',
    email: 'aidan@gmail.com',
    password: 'securePassword'
  });
}

只是我无法确定如何实际登录我的用户。我已经尝试过只需在表单中输入密码和电子邮件地址。这不起作用(表单错误表示“禁止登录'”。

我已尝试添加以下行(与我的帐户创建代码相同的文件) -

accountsServer.validateLoginAttempt(()=>{return true;});

毫不奇怪,它没有做任何事情。

我已经尝试将提交事件添加到我的footer.js文件中 -

Template.footer.events({
  'submit form'(event) {
    console.log('submitted');
    const email = document.getElementById('at-field-email').value;
    const password = document.getElementById('at-field-password').value;
    Meteor.loginWithPassword(email, password);
  },
});

我可以看到该事件正在触发,但当我在控制台中尝试Meteor.user()时,我仍然得到null

2 个答案:

答案 0 :(得分:0)

if (!Acounts.findUserByEmail('aidan@gmail.com'))中有错误(应该是Accounts)。用户尚未创建。

使用单个硬编码用户获得超级简单的功能登录 -

添加accounts-password包和ui用户帐户包。

> meteor add accounts-password
> meteor add useraccouts:unstyled

accounts-password包处理实际登录。用户帐户:unstyled packages为帐户管理提供了一组模板。

然后将登录表单添加到模板中。

<template name="templateWithLogin">
    {{> atForm state="signIn"}}
</template>

最后创建一个用户(例如在/server/main.js)。

import { Accounts } from 'meteor/accounts-base';

if (!Accounts.findUserByEmail('user@gmail.com')) {
  Accounts.createUser({
    username: 'User',
    email: 'user@gmail.com',
    password: 'securePassword'
  });
}

这应该是获取功能登录表单所需的所有。有大量在线教程可用于创建其他功能。主要文件是here

答案 1 :(得分:-1)

您可以使用{{&gt; loginButtons}}获取功能的ui和{{#if currentUser}}。