向用户注册添加密码
Adding a secret code to user sign up
请原谅由于不熟悉这个框架及其组件而造成的任何无知,我正在边做边学。
我已经用angular-fullstack
建立了一个基本的应用程序,并正在探索一些我想知道如何做的任务。特别是,我想在用户注册过程中添加一个额外的表单元素,这样不仅任何人都可以注册,而且只有那些提供预先确定的口头共享安全代码的人才能注册。如果输入的代码无效,则不应创建新用户,并(可选)向用户返回一些消息。
在我的server/config/environment/index.js
文件中,我在secrets
密钥中添加了一个额外的项目,我将使用它来检查是否输入了有效的代码
...
// Secret for session, you will want to change this and make it an environment variable
secrets: {
session: 'myapp-secret',
secretCode: 'my-secret' // pre-determined secret code
},
...
在我的表单中,我添加了附加字段并分配了ng-model="secret"
。表单指向控制器的register
函数,因此我还将新输入的值添加到传递给Auth.createUser
:的参数中
$scope.register = function(form){
...
if (form.$valid) {
Auth.createUser({
name: $scope.user.name,
email: $scope.user.email,
password: $scope.user.password,
secret: $scope.secret // My input field to pass to the user controller
})
}
...
}
现在我可以进入server/api/user/user.controller.js
的create
函数,并包含我的用于检查密码的逻辑。
/**
* Creates a new user
*/
exports.create = function(req, res, next) {
...
if (req.body.secret !== config.secrets.secretCode) {
// cancel creating a new user
};
...
};
我现在的问题是如何在if
语句中处理此问题?浏览一下框架,我似乎可以重定向或做一些事情回到/signup
页面,并包含一条错误消息,但我不确定我应该在这里做什么来处理它。
我一直在从多个不同的角度看待这件事,我(据我所知)还没有"啊哈!"的时刻,我相信我正在以正确的方式处理这件事。我是不是以一种非传统的方式来做这件事?
我使用SRP原理来指导我。
有两个危险信号。为了真正创建用户,您不需要密钥。为了安全起见,实际人员创建用户需要该机密。因此,关键逻辑应该与控制器中的其他实际的以人为中心的逻辑在一起,而不是在Auth.create
方法内部。
第二个危险信号是您希望在控制器中保持重定向。看起来你看到了红旗,干得好。
让控制器执行安全和重定向,这样你的代码或多或少会是这样的:
// controller.js
if (key_matches)
createUser();
else
redirectUser()
// auth.js
exports.create = function(req) {
create_user(req);
}
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在映射数组中添加换行符
- 正在将数据主题添加到所有项目
- ZeroClipboard-在复制之前添加到值
- 我可以在json对象中添加一个函数吗
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何根据一定的标准在angularjs中使用正则表达式添加密码验证
- 添加“;密码”;键入Google Apps Script inputBox
- 向用户注册添加密码
- 如何为Parse上托管的Parse应用程序添加自定义密码重置模板
- 如何添加数据到我的firebase上的电子邮件和密码注册使用angularfire2
- 添加密码验证后表单验证不工作
- 我的jquery验证添加方法密码规则的问题
- 为密码验证JavaScript添加条件
- 向密码中添加最少字符
- 向ssh2流添加新密码
- 将密码添加到PDF's自动
- 如何在添加用户表单上禁用浏览器的保存密码功能
- jQuery添加自定义密码规则不工作