【发布时间】:2014-04-20 02:29:42
【问题描述】:
我已经使用sailsjs 为应用程序构建了一个后端。我的应用使用某种基于令牌的身份验证,为此我设置了策略:
module.exports.policies = {
// Policies that apply to all controllers.
// '*': true // DEV ONLY
'*': [ 'requestData' ],
'UserController': {
'*': [ 'requestData' ],
'register': true,
'exists': true
},
'AdminController': {
'*': true
}
};
效果很好。但是,现在我想使用Socket.IO 从我的AdminController 中的视图访问受保护的控制器。但是,正如预期的那样,当我尝试从我的视图中访问资源列表时,会抛出Forbidden。
是否可以定义以下策略:
- 允许来自同一域的所有请求(http 或 websocket)
- 不允许来自任何其他域的所有请求
此外,即使有可能,这种方法是否安全?我拥有整个服务器和域,因此在正常情况下,不会从此服务器提供其他应用程序。
谢谢!
【问题讨论】:
-
您是说通过套接字访问
/admin下的路由时被“禁止”了吗?不应该是这样的。 -
@ScottGress 不,我正在尝试使用套接字从
/admin下的视图访问我的其他控制器的 REST 路由。例如:socket.get('/request', function(data) {});。但是,由于这些控制器处于需要令牌的特殊策略下,所以我被卡住了(我当然可以为所有硬编码到客户端 javascript 中的 GET 操作制作一个特殊令牌。但这会构成安全风险)..
标签: javascript node.js sockets acl sails.js