我对JayData很陌生,所以这听起来像是一个愚蠢的问题。我在这里阅读了OData服务器教程:http://jaydata.org/blog/install-your-own-odata-server-with-nodejs-and-mongodb-可以像这样设置OData提供程序,这令人印象深刻。但是,教程没有详细介绍如何自定义提供程序。
我很想知道如何使用自定义数据库设置它,以及如何向OData服务器添加身份验证/授权层。我的意思是,不是每个用户都有权限访问每个实体,也不是每个用户都有权限添加新实体。
我将如何使用JayData处理此类用例?
4条答案
按热度按时间vlju58qv1#
更新:
这里有两篇文章可以让你开始:
文章中经常使用的
$data.createODataServer
方法是一种方便的方法,它对您隐藏了connect/express管线。要与管道交互,请检查node_modules/odata-server文件夹中的$data.createODataServer
函数的方法体。忽略以下文本
身份验证必须通过连接管道来解决,有很多中间件可以解决这个问题。
对于授权,EntityContext构造函数接受一个必须是Promise感知的授权函数。
all-allow授权器看起来像这样。
我必须咨询一个团队成员关于让你把它传递到构建过程中的语法--但我可以确认这是可行的,并且是受支持的。我会尽快给你答复。
在对用户进行身份验证之后,您还可以使用EntityContext Level Events拦截读取/更新/创建/删除操作。
还有一种声明式的方法,你可以用实体集的权限来注解角色名,这需要你的用户对象实际上有一个角色字段,里面有一个角色名数组。
myzjeezk2#
我最近也在研究oData,当我们在node和C#中开发我们的平台时,自然会关注JayStorm。从我对JayStorm的技术细节的理解来看,Connect和Express的整个功能都可以使这个主题成为可能。我们使用Restify来提供我们平台的私有API,并且我们已经为这种情况编写了许多中间件模块。
axzmvihb3#
我们也使用JayData作为OData服务层,我用它实现了一个非常简单的基本身份验证。由于JayData使用Express,因此我们可以利用Express的功能。对于基本身份验证,最简单的方法是:
您还可以参考本文,了解使用Express进行身份验证的更多详细信息:http://blog.modulus.io/nodejs-and-express-basic-authentication
谢谢
pb3skfrl4#
我写了那篇博客,我为JayData工作。custom database是什么意思我们已经编写了一个用于身份验证和授权的中间件,但它不是开源的。我们可以稍后发布它。我们有一个叫JayStorm的服务,它有一个免费版本,也许这对你有好处。我们可能会发布它的应用程序版本。