我想使用react
和meteor
构建管理员身份验证我在客户端文件夹中使用React
设置了以下登录表单:
class Admin extends Component {
onSubmit(event) {
event.preventDefault();
const self = this;
const email = $(event.target).find('[name=email]').val();
const password = $(event.target).find('[name=password]').val();
Meteor.loginWithPassword(email, password, function (err) {
if (err) console.log(err.reason);
});
}
render() {
return (
<div className='flex-login'>
<form onSubmit={this.onSubmit}>
<div className='login'>
<div className='welcome'>
<p><strong>Greetings</strong>, my dear master :) </p>
<p>Did anything surprise you today?</p>
</div>
<input name='email' type="email" placeholder="Name" />
<input name='password' type="password" placeholder="Secretword" />
<button type="submit">Enter</button>
</div>
</form>
</div>
);
}
}
并将以下Accounts.createUser添加到服务器main.js文件中:
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
// Creating user
Meteor.startup(() => {
if (Meteor.users.find().count === 0) {
Accounts.createUser({
email: 'master@mail.com',
password: 'master'
});
}
});
当我尝试使用已定义的帐户信息登录时,我会收到console.log User not found
。
为了达到目的,你能解释一下我所缺少的东西吗?
如果您能解释一下我或者向我指出一些外部资源,我会非常感激,如何为管理员进行自定义安全登录,以便将其保存在production version
。<登记/>
这些身份验证的目的是允许进一步访问管理集合的信息。
答案 0 :(得分:0)
我认为没有创建管理员,因为有其他用户Meteor.users.find().count()
的值永远不会为零。您应该检查角色为“admin”的用户是否为零并创建管理员。您可以使用此处的角色包alanning:roles向用户添加角色。
希望有所帮助
谢谢
答案 1 :(得分:0)
你在Meteor.users.find()中使用count而不是count()。count()