请原谅由于不熟悉此框架及其组件而导致的任何无知,我正在边做边学。
我已经建立了一个基本的应用程序,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
})
}
...
}
现在我可以进入检查密码的create功能并包含我的逻辑。server/api/user/user.controller.js
/**
* Creates a new user
*/
exports.create = function(req, res, next) {
...
if (req.body.secret !== config.secrets.secretCode) {
// cancel creating a new user
};
...
};
我现在的问题是我应该如何在我的if声明中处理这个问题?窥探框架,似乎我可以只做重定向或返回/signup页面并包含错误消息,但我不确定我应该在这里做什么来处理它。
我一直在从多个不同的角度看待这个问题,而我(据我所知)还没有“啊哈!” 我有信心以正确的方式接近这一点的那一刻。我会以一种非常规的方式来解决这个问题吗?