Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 模型操作的Sails.js身份验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在制作一个具有不同访问级别的API,“客户端”可能只能阅读.但’admin’必须具有写访问权限.每次将不同的角色作为Sails.js中的策略进行检查,并在req.session中设置权限.

我只需要让’client’无权访问创建,更新和删除操作,因此我创建了一个具有这些CRUD操作的控制器,并检查用户是否具有正确的角色.所有限制访问的操作都会通过routes.js重定向到此控制器.

现在我的问题是,当我删除类似的条目:Category.destroy(req.param(‘id’));给我未定义,没有做过方法.与文档提到的不同,我设法通过创建这个来解决问题:

@H_616_11@var deleted = Category.destroy(req.param('id'),function(err,status) { if (status == 1){ res.json({message: 'Category is deleted'}); } else { res.json({message: 'Oops,something went wrong'}); } });

但必须有另一种方法将身份验证应用于这些基本操作.因为现在我要编写所有动作.

我写的删除函数代码有什么问题吗?是否可以应用策略并重定向认模型操作,就好像根本没有身份验证一样?

解决方法

您可以在“模型”或“控制器”级别定义策略.这是/config/policies.js中的一个示例.

@H_616_11@module.exports.policies = { // Default policy (allow public access) '*': true,'events': 'eventsPolicy',// Policy for a Model someController: { // Policy for a Controller // Apply the "authenticated" policy to all actions '*': 'authenticated',// For someAction,apply 'somePolicy' instead someAction: 'somePolicy' } };

在api / policies下,您可以在其中定义访问级别.

@H_616_11@module.exports = function (req,res,next) { if (req.session.user) { var action = req.param('action'); if (action == "create") { req.body.userId = req.session.user.id; req.body.username = req.session.user.username; } next(); } else { res.send("You're not authenticated.",403); } };

希望这可以帮助.

大佬总结

以上是大佬教程为你收集整理的node.js – 模型操作的Sails.js身份验证全部内容,希望文章能够帮你解决node.js – 模型操作的Sails.js身份验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。