如何在付款时使用 Angular 管理高级帐户?
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(Payment require),用户必须为发布付费。
$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);
所以我为 "pay and publish" 创建了另一条路线。
支付是一个中间件。
app.route('/projects/pay')
.post(users.requiresLogin, projects.pay, users.hasCredits, //pay and check credits
multer({ dest: 'uploads/'}), projects.create); // done
我正在创建一个具有多种角色的网站。 在我的模型中,用户角色是一个数组。所以一个用户可以叠加多个角色。
示例:
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(Payment require),用户必须为发布付费。
$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);
所以我为 "pay and publish" 创建了另一条路线。 支付是一个中间件。
app.route('/projects/pay')
.post(users.requiresLogin, projects.pay, users.hasCredits, //pay and check credits
multer({ dest: 'uploads/'}), projects.create); // done