我已经设置了基本的流星应用程序,我可以使用facebook登录。我想在实际创建用户之前询问有效的电话号码。你如何在流星中实现这一目标? 登录工作流程:
Login-page =>点击“使用facebook登录”=>用户授予app =>的权限重定向回应用并询问电话号码=>创建用户
我正在使用account-facebook及相关套餐。
由于
答案 0 :(得分:3)
自Facebook API doesn't support access to the user phone以来,您不能只扩展requestPermission数组来请求user_phone。
让我们说你有这个简单,登录Facebook按钮
Meteor.loginWithFacebook({ requestPermissions: ['email']},
function (error) {
if (error) {
return console.log("There was an error : " error.reason);
}else{
//if there is no error, lets redirect the new user to a new template
Router.go('/registerForm')
}
});
现在,如果登录成功,您可以将用户重定向到registerForm
。
注册表单HTML
<template name="registerForm">
<!-- Simple Register Form asking for phone number -->
</template>
JS活动
Template.registerForm.events({
'submit registerForm':function(e,t){
//code to get the input value
var userPhoneNumber = t.$('#phoneInputValue').val()
Meteor.users.update(Meteor.userId(),{$set:{'profile.phoneNumber':userPhoneNumber,'profileNumber':true}})
}
})
您是否设置了布尔值profileNumber
?有了这个,你可以使用模板助手来确保和拒绝用户填写registerForm
模板(只是一个额外的安全性)的访问权限,你可以使用Accounts.onCreateUser
在服务器端默认设置它像这样的方法。
Accounts.onCreateUser(function(options, user) {
if(!options || !user) {
console.log('error creating user');
return;
} else {
if(options.profile) {
user.profile.userPhoneNumber = false;
}
}
return user;
});