简体   繁体   English

如何通过react.js在meteor.js中创建用户

[英]How to create a user in a meteor.js through the react.js

I'm trying to create a user from the reaction of component: 我试图根据组件的反应来创建用户:

import React, { Component, PropTypes } from 'react';
import ReactDOM from 'react-dom';
import { Accounts } from 'meteor/accounts-base'

import { createContainer } from 'meteor/react-meteor-data';

import { FlowRouter } from 'meteor/kadira:flow-router';
import { mount } from 'react-mounter';

FlowRouter.route('/signup', { name: 'signup', action(){ mount( SignUp ); } });

AccountsTemplates.configure({
   forbidClientAccountCreation: false
});

class SignUp extends Component {
  constructor(props) {
    super(props);
    this.state = { mail:'', pass:''};
  }
  handleMailChange(e){ this.setState({mail: e.target.value}); }
  handlePassChange(e){ this.setState({pass: e.target.value}); }
  eSignup(e){
    e.preventDefault();
    console.log("Sign Up Form submitted.");
    Accounts.createUser({ email:'mail', password:'passwd'}, (err)=> {
      if (err) console.error(err.reason);
      else {
        console.info('Create user success !');
        FlowRouter.go('/');
      }
    });
  }
  render(){
    return (
        <div className="row">
          <div className="container">
            <form name="login">
              <input type="email" name="mail" onChange={this.hMailChange.bind(this)}/>
              <input type="password" name="Pass" onChange={this.hPassChange.bind(this)}/>
              <input type="submit" value="Signup" onClick={this.Signup.bind(this)}/>
            </form>
          </div>
        </div>
    );
  }
}

But I get an error: 403 Signups forbidden . 但我得到一个错误: 403 Signups forbidden I looked at the source code of the component the meteor. 我查看了流星组件的源代码。 And maybe I find there the lines generating the error: https://github.com/meteor/accounts/blob/master/packages/accounts-password/password_server.js#L1014 也许我找到了产生错误的行: https : //github.com/meteor/accounts/blob/master/packages/accounts-password/password_server.js#L1014

if (Accounts._options.forbidClientAccountCreation)
   return { error: new Meteor.Error(403, "Signups forbidden") };

And I don't understand why this test works if I set Accounts._options.forbidClientAccountCreation like false 而且我不明白如果将Accounts._options.forbidClientAccountCreation设置为false为什么此测试有效

account-ui and other packages to work with ui and users I deleted. account-ui和其他与ui和我删除的users一起使用的软件包。

My package.json : 我的package.json

  "dependencies": {
    "babel-runtime": "^6.18.0",
    "bcrypt": "^1.0.1",
    "classnames": "^2.2.5",
    "lib": "^1.0.5",
    "meteor-node-stubs": "~0.2.0",
    "particles.js": "^2.0.0",
    "react": "^15.4.1",
    "react-addons-pure-render-mixin": "^15.4.1",
    "react-dom": "^15.4.1",
    "react-mounter": "^1.2.0"
  }

What I'm doing wrong? 我做错了什么?

Your code must have set forbidClientAccountCreation to true somewhere. 您的代码必须在某处将forbidClientAccountCreation设置为true You need to turn that option to false in order to create user in client. 您需要将该选项设置为false才能在客户端中创建用户。

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

AccountsCommon.config({
  forbidClientAccountCreation: false
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM