[英]How to manage Premium Account with Angular at the payment?
我正在创建一个具有许多角色的网站。 在我的模型中,用户角色是一个数组。 因此,用户可以堆叠多个角色。
范例:
user.role = ['artist', 'premium'];
在用户情况下,用户可以创建一个项目并在创建时付款。 它是免费的。
我的问题是:
管理高级职位的最佳实践是什么?
我考虑了两种释放方法:
Auth.isPremium() === true
检查。 但是我认为这是一个非常糟糕的做法。 我为高级帐户创建了另一条路线。 我将在路由提供者期间检查角色,如下所示:
$routeProvider.when('/project/:type', { templateUrl: 'app/project/form/form.html', controller: 'ProjectFormCtrl', access: { requiresLogin: true, requiredPermissions: ['premium'] }, })
我错了吗?
感谢前进!
所以我这样做了:
用户使用其数据查询以创建他的项目。 如果服务器响应402(需要付款),则用户必须为发布付费。
$http.post('/projects', fd, option)
.then(function (response) {
$location.path('/');
},function (response) {
if (response.status === 402) {
$scope.payment = true;
$scope.error = response.data.message;
$scope.stripe.publishable = ENV.stripePublishable;
}
});
我使用中间件检查高级帐户
app.route('/projects')
.post(users.requiresLogin, users.hasCredits, //check if premium
multer({ dest: 'uploads/'}), projects.create);
因此,我为“付款和发布”创建了另一条路线。 支付是一种中间件。
app.route('/projects/pay')
.post(users.requiresLogin, projects.pay, users.hasCredits, //pay and check credits
multer({ dest: 'uploads/'}), projects.create); // done
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.