如何更改密码、电子邮件和 meteor 配置文件
How to change password, email and meteor profile
你好朋友一些可以指点我一些 material 比如更改密码,电子邮件和在个人资料中添加新字段,如性别,年龄城市添加照片。不使用集合或 aldeed-autoform。
所有这些都是用我自己的代码做的,所以有更多的控制一些 alded-autoform select 函数,比如 select 或 datepicker 在设计中看起来不太好。
Something like the image
Template.update.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
var oldPass = $('#password');
var newPass = $('#password-new');
var verifyPass = $('#password-confirm');
if(newPass.val() === verifyPass.val()){
Accounts.changePassword(oldPass.val(), verifyPass.val(), function(err){
if(err) {
console.log(err);
} else {
let profile = {
address: {
city: target.city.value,
street: target.street.value
},
gender: target.gender.value,
favoriteColor: target.favoriteColor.value,
}
console.log("datos actualizados");
}
});
oldPass.val('');
verifyPass.val('');
newPass.val('');
} else {
console.log("password no match");
}
//}
console.log(profile);
Meteor.call('updateUser', profile);
}
});
{
_id: "bbca5d6a-2156-41c4-89da-0329e8c99a4f",
emails: [
{ address: "cool@example.com", verified: true },
],
createdAt: Wed Aug 21 2013 15:16:52 GMT-0700 (PDT),
profile: {
name: "Joe Schmoe",
phone: "5555-555-555",
gender: "male",
city: "DC",
country: "USA",
birthday: "01-01-2017"
}
马塞尔拉玛,
我将分享我是如何做的。对于我的项目,我存储了 Skype Id 和时区之类的东西。所以当我去 Meteor Method
创建一个新用户时
Accounts.createUser({
email: 'example@example.com',
password: 'testing',
profile: {
name: "Jack",
gender: "Male",
skypeid: "jack123",
timezone: {
name: "UTC",
offset: "UTC"
}
}
});
你也可以这样做。
let newUser = { ... };
let user = Accounts.createUser(newUser);
将其存储在变量 returns 中 Mongo Id。
然后当你去更新配置文件时,你可以这样做。
Meteor.users.update({ _id: user }, { $set: { "profile.name": "Jake" } });
如果您在尚不存在的字段上使用 Meteor.users.update,它将使用您指定的值创建该字段,但请确保在键周围使用 "quote marks"。
Meteor.users.update({ _id: user },
{
$set: { "profile.address.city": "Orlando" }
}
);
这是官方文档。 http://docs.meteor.com/api/accounts.html
这是一个非常基本的例子
包 ---
meteor add accounts-base
meteor add accounts-password
npm install --save bcrypt
模板---
<template name="signup">
<form>
<input type="email" name="email"><br>
<input type="password" name="password"><br>
<input type="text" name="name"><br>
<input type="submit" value="submit">
</form>
</template>
活动---
import { Meteor } from 'meteor/meteor';
Template.signup.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
let newUser = {
email: target.email.value,
password: target.password.value,
profile: {
name: target.name.value
}
}
Meteor.call('createNewUser', newUser);
}
});
方法---
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
Meteor.methods({
'createNewUser' ( userObj ) {
let user = Accounts.createUser(userObj);
user = Accounts.users.findOne(user);
console.log(user);
}
});
更新用户资料
模板
<template name="update">
<form>
<input type="text" name="gender" placeholder="gender"><br>
<input type="text" name="favoriteColor" placeholder="color"><br>
<input type="text" name="city" placeholder="city"><br>
<input type="text" name="street" placeholder="street"><br>
<input type="submit" value="submit">
</form>
</template>
客户端事件
Template.update.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
let profile = {
address: {
city: target.city.value,
street: target.street.value
},
gender: target.gender.value,
favoriteColor: target.favoriteColor.value,
}
console.log(profile);
Meteor.call('updateUser', profile);
}
});
流星法
import { Meteor } from 'meteor/meteor';
Meteor.methods({
'updateUser' ( profileObj ) {
let userId = Meteor.userId();
console.log(userId);
Meteor.users.update(
{ '_id': userId },
{ '$set': {
'profile.gender': profileObj.gender,
'profile.favoriteColor': profileObj.favoriteColor,
'profile.address': profileObj.address
}
}
);
}
});
你好朋友一些可以指点我一些 material 比如更改密码,电子邮件和在个人资料中添加新字段,如性别,年龄城市添加照片。不使用集合或 aldeed-autoform。 所有这些都是用我自己的代码做的,所以有更多的控制一些 alded-autoform select 函数,比如 select 或 datepicker 在设计中看起来不太好。
Something like the image
Template.update.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
var oldPass = $('#password');
var newPass = $('#password-new');
var verifyPass = $('#password-confirm');
if(newPass.val() === verifyPass.val()){
Accounts.changePassword(oldPass.val(), verifyPass.val(), function(err){
if(err) {
console.log(err);
} else {
let profile = {
address: {
city: target.city.value,
street: target.street.value
},
gender: target.gender.value,
favoriteColor: target.favoriteColor.value,
}
console.log("datos actualizados");
}
});
oldPass.val('');
verifyPass.val('');
newPass.val('');
} else {
console.log("password no match");
}
//}
console.log(profile);
Meteor.call('updateUser', profile);
}
});
{
_id: "bbca5d6a-2156-41c4-89da-0329e8c99a4f",
emails: [
{ address: "cool@example.com", verified: true },
],
createdAt: Wed Aug 21 2013 15:16:52 GMT-0700 (PDT),
profile: {
name: "Joe Schmoe",
phone: "5555-555-555",
gender: "male",
city: "DC",
country: "USA",
birthday: "01-01-2017"
}
马塞尔拉玛,
我将分享我是如何做的。对于我的项目,我存储了 Skype Id 和时区之类的东西。所以当我去 Meteor Method
创建一个新用户时 Accounts.createUser({
email: 'example@example.com',
password: 'testing',
profile: {
name: "Jack",
gender: "Male",
skypeid: "jack123",
timezone: {
name: "UTC",
offset: "UTC"
}
}
});
你也可以这样做。
let newUser = { ... };
let user = Accounts.createUser(newUser);
将其存储在变量 returns 中 Mongo Id。
然后当你去更新配置文件时,你可以这样做。
Meteor.users.update({ _id: user }, { $set: { "profile.name": "Jake" } });
如果您在尚不存在的字段上使用 Meteor.users.update,它将使用您指定的值创建该字段,但请确保在键周围使用 "quote marks"。
Meteor.users.update({ _id: user },
{
$set: { "profile.address.city": "Orlando" }
}
);
这是官方文档。 http://docs.meteor.com/api/accounts.html
这是一个非常基本的例子
包 ---
meteor add accounts-base
meteor add accounts-password
npm install --save bcrypt
模板---
<template name="signup">
<form>
<input type="email" name="email"><br>
<input type="password" name="password"><br>
<input type="text" name="name"><br>
<input type="submit" value="submit">
</form>
</template>
活动---
import { Meteor } from 'meteor/meteor';
Template.signup.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
let newUser = {
email: target.email.value,
password: target.password.value,
profile: {
name: target.name.value
}
}
Meteor.call('createNewUser', newUser);
}
});
方法---
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/accounts-base';
Meteor.methods({
'createNewUser' ( userObj ) {
let user = Accounts.createUser(userObj);
user = Accounts.users.findOne(user);
console.log(user);
}
});
更新用户资料
模板
<template name="update">
<form>
<input type="text" name="gender" placeholder="gender"><br>
<input type="text" name="favoriteColor" placeholder="color"><br>
<input type="text" name="city" placeholder="city"><br>
<input type="text" name="street" placeholder="street"><br>
<input type="submit" value="submit">
</form>
</template>
客户端事件
Template.update.events({
'submit form' ( event, template ) {
event.preventDefault();
const target = event.target;
let profile = {
address: {
city: target.city.value,
street: target.street.value
},
gender: target.gender.value,
favoriteColor: target.favoriteColor.value,
}
console.log(profile);
Meteor.call('updateUser', profile);
}
});
流星法
import { Meteor } from 'meteor/meteor';
Meteor.methods({
'updateUser' ( profileObj ) {
let userId = Meteor.userId();
console.log(userId);
Meteor.users.update(
{ '_id': userId },
{ '$set': {
'profile.gender': profileObj.gender,
'profile.favoriteColor': profileObj.favoriteColor,
'profile.address': profileObj.address
}
}
);
}
});