javascript - 使用随机用户名和无密码在服务器上创建用户

标签 javascript meteor meteor-accounts

我对 Meteor 很陌生,正在尝试开发一个在线同步游戏实验。一般来说,一旦参与者同意同意书,我想创建一个用户并将该用户添加到我的玩家集合中。

我的 consent_page.js 如下所示:

import './consent_page.html';
import { FlowRouter } from 'meteor/kadira:flow-router';
import { Template } from 'meteor/templating';
import { Meteor } from 'meteor/meteor'
import '../../../api/players/methods.js'


Template.consent_page.events({
    'submit .consent-form'(event) {
        event.preventDefault();
        Meteor.call('players.addPlayer');
        FlowRouter.go('/instructions')
    }
});

我的players.addPlayer方法看起来像这样

import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
import { Players } from './players.js';
import { Random } from 'meteor/random'

Meteor.methods({
    'players.addPlayer'() {
        console.log('I am in the method');
        username = Random.id();
        user = create_user(username);

        alert(username);
        alert(user);

        Players.insert({
            _id: this.userId,
            enterTime: new Date(),
            status: 'instructions',
            passedQuiz: false,
            quizAttempts: 0,
            needRematch: false,
            condition: 'control'
        });
    }
});


/*
* Helper functions for the methods
*/
//create user in the server
create_user = function (username) {
    return Accounts.createUser({
        username: username,
    });
};

集合Players.js具有集合的定义。

import { Mongo } from 'meteor/mongo'
export const Players = new Mongo.Collection('players');

但是,这不起作用。我确实被重定向到说明页面,但没有创建用户..我收到以下错误:

Error invoking Method 'players.addPlayer': Method 'players.addPlayer' not found [404]

尽管如此,我在控制台中打印了 I am in the method 消息。返回 create_user 的警报是 undefined。另外,我想创建没有密码的用户(我该怎么做?)。

最佳答案

Accounts.createUser() 方法是 accounts-base 包的一部分。您需要import that首先。我正在分享我的工作项目的一个片段。希望这有帮助:

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

const bcrypt = require('bcrypt');

Meteor.methods({
  'user.create':function(data){
       return Accounts.createUser({
         name: data.name,
         username: data.userId,
         password: data.password,
       });
  }
});

关于javascript - 使用随机用户名和无密码在服务器上创建用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45704648/

相关文章:

javascript - canPlayType maybe 和 probably 输出之间的区别

javascript - Angular-Meteor mongo 数据未渲染

Angular-Meteor 更新到 1.6.1.1 typescript 编译器缺少声明

javascript - 使 Meteor 方法同步

javascript - .on 或 .click 函数仅对同名表单元素有效一次

Javascript 获取前一个元素的内容

javascript - 在 Angular ng-switch 中使用 html 模板

javascript - 在 meteor 中自定义登录按钮

cookies - Meteor 在客户端和服务器之间共享 session 数据

发布函数中的 Meteor.userId()