ExpressJs - 如何在开发人员工具中使api文件不可读

时间:2015-01-20 20:39:09

标签: javascript angularjs express

当然,当我在Google中使用开发人员工具并在新标签页中单击打开API文件时,我可以在下面看到数据。

但是当我尝试做同样的事情时,我去过网站,有一些安全措施导致新标签页中的打开显示" Unauthorized"消息而不是数据。

它不能是会话事件,因为我已正确登录。我认为这是由 WHAT 调用API文件确定的。

有没有人知道如何在我的ExpressJs javascript / angularjs应用程序中复制它?

{ 
   username: "James Doe",
   picture: "styles/person.png",
   activity: 12
}

enter image description here

以下是GTDNext.com的示例

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案,我想与其他人分享,因为我认为在XHR数据方面在客户端添加一层安全性很有用。

请记住我正在使用棱角分明。

在我的app.config中,我创建了3个自定义$ httpProvider提供程序:

    $httpProvider.defaults.headers.put['X-Posted-By'] = 'mySecretApp'
    $httpProvider.defaults.headers.post['X-Posted-By'] = 'mySecretApp'
    $httpProvider.defaults.headers.common['X-Requested-By'] = 'mySecretApp'

在我的节点控制器中,响应GET api调用,我有:

....
module.exports = {
  all: function (req, res) {
    if (req.header('x-requested-by') != "mySecretApp") {
        return res.status(400).send({
            message: errMsg.Util_ErrorMsg.getErrorMessage('Invalid requester')
        });
    };

现在,如果我通过浏览器正确检索数据,我就会得到数据。但是,如果我尝试从浏览器中直接打开api,则不会显示任何数据。 进一步加密数据将使其完全无法读取 开发人员工具 - >网络 - > XHR