小编lag*_*lex的帖子

如何使用node.js实现安全的REST API

我开始使用node.js,express和mongodb规划REST API.API为网站(公共和私人区域)以及稍后的移动应用程序提供数据.该前端将与AngularJS一起开发.

有些日子我读了很多关于保护REST API的内容,但我没有找到最终的解决方案.据我所知,使用HTTPS提供基本的安全性.但是我如何在该用例中保护API:

  • 只允许网站/应用的访问者/用户获取网站/应用的公共区域的数据

  • 只允许经过身份验证和授权的用户获取私有区域的数据(并且只有用户授予权限的数据)

目前我认为只允许具有活动会话的用户使用API​​.为了授权用户,我将使用护照并获得许可,我需要为自己实施一些内容.全部在HTTPS之上.

有人可以提供一些最佳实践或经验吗?我的"架构"是否缺乏?

rest node.js express passport.js

199
推荐指数
5
解决办法
11万
查看次数

向左溢出而不是向右溢出

我有一个div overflow:hidden,我在其中显示用户输入的电话号码.div内的文本与右对齐,并且当文本向左扩展时,传入的字符将添加到右侧.

但是一旦文本大到不适合div,数字的最后一个字符就会自动裁剪,用户无法看到她输入的新字符.

我想要做的是裁剪左边的字符,就像div显示其最右边的内容并溢出到左侧.我该如何创造这种效果?

电话号码溢出到左边

html css overflow

94
推荐指数
6
解决办法
6万
查看次数

如何设置CSS角色的样式

在以下HTML中

<div id="content" role="main">
Run Code Online (Sandbox Code Playgroud)

id可以通过#contentCSS 访问.我如何访问role="main".

css

93
推荐指数
5
解决办法
13万
查看次数

"/favicon.ico"vs <link rel ="快捷图标"/>

  • 在网站上创建图标的最佳做法是什么?
  • 并且是一个.ico文件,16x16和32x32图像比只有16x16 的.png文件更好?
  • 今天优选的正确方法是不是在合理的旧浏览器中工作?

方法1

放置favicon.ico在主目录中命名的文件是一种方法.浏览器始终请求该文件.您可以在apache日志文件中看到它.

方法2

部分中的HTML标记<head>:

<link rel="shortcut icon" href="/images/favicon.png (or ico?)" type="image/x-icon" />
Run Code Online (Sandbox Code Playgroud)

html favicon html5

90
推荐指数
2
解决办法
13万
查看次数

如何从setTimeout做出承诺

这不是一个现实世界的问题,我只是想了解如何创造承诺.

我需要了解如何为一个不返回任何内容的函数做出承诺,比如setTimeout.

假设我有:

function async(callback){ 
    setTimeout(function(){
        callback();
    }, 5000);
}

async(function(){
    console.log('async called back');
});
Run Code Online (Sandbox Code Playgroud)

如何创建一个async可以在setTimeout准备好后返回的承诺callback()

我想包装它会带我到某个地方:

function setTimeoutReturnPromise(){

    function promise(){}

    promise.prototype.then = function() {
        console.log('timed out');
    };

    setTimeout(function(){
        return ???
    },2000);


    return promise;
}
Run Code Online (Sandbox Code Playgroud)

但我想不到这一点.

javascript settimeout promise

77
推荐指数
4
解决办法
7万
查看次数

nodejs护照身份验证令牌

我正在编写一个nodejs应用程序,我想将其用作Web应用程序以及API提供程序.一旦用户通过身份验证,我想为该用户分配一个令牌,用于后续请求.这适用于Web应用程序的护照,因为我只是在会话中使用令牌序列化和反序列化用户.但是,在响应API请求时,没有设置cookie来存储会话信息.理想情况下,护照会在会话和请求正文中查找令牌.有没有办法配置护照来完成这个?

authentication node.js express passport.js

70
推荐指数
2
解决办法
4万
查看次数

如何使用npm安装多个版本的包

由于https://github.com/npm/npm/issues/2943,npm将永远不会支持别名包和安装同一包的多个版本的能力.

在github问题上发布的变通方法可能适用于纯JS模块,但随着npm成为前端包管理的标准,包现在包括各种资产,如CSS.

有没有解决方法来安装同一个包的多个版本?

我想出的最好的想法是"克隆"一个包,并用一个稍微不同的名称发布它.

例如,如果你需要的多个版本jquery,你可以只包发布所谓jquery-alias1,jquery-alias2,jquery-alias3等,然后在你的设置适当的版本package.json.

或者你可以根据自己的版本号,比如命名的包jquery-1.11.x,jquery-2.1.x等等.

但这两种方法看起来都很草率.还有更好的吗?

frontend packages npm

69
推荐指数
4
解决办法
3万
查看次数

为什么Node中的PassportJS不会在注销时删除会话

我无法让我的系统注销PassportJS.似乎正在调用注销路由,但它不会删除会话.如果用户没有以特定路线登录,我希望它返回401.我调用authenticateUser来检查用户是否已登录.

非常感谢!

/******* This in index.js *********/
// setup passport for username & passport authentication
adminToolsSetup.setup(passport);

// admin tool login/logout logic
app.post("/adminTool/login",
    passport.authenticate('local', {
        successRedirect: '/adminTool/index.html',
        failureRedirect: '/',
        failureFlash: false })
);
app.get('/adminTool/logout', adminToolsSetup.authenticateUser, function(req, res){
    console.log("logging out");
    console.log(res.user);
    req.logout();
    res.redirect('/');
});


// ******* This is in adminToolSetup ********
// Setting up user authentication to be using user name and passport as authentication method,
// this function will fetch the user information from the user name, and compare the password …
Run Code Online (Sandbox Code Playgroud)

javascript logout node.js express passport.js

65
推荐指数
7
解决办法
5万
查看次数

在CSS或JavaScript中反转图像的颜色

如果可能或javascript,如何在css中反转图像的颜色(jpg/png ..)?

以前的 相关问题没有提供足够的细节.

javascript css colors

61
推荐指数
2
解决办法
10万
查看次数

在angularjs中使用ng-bind中的过滤器后添加更多文本

所以我想在ng-bind指令中通过过滤器放置一个变量

ng-bind="input | filter"
Run Code Online (Sandbox Code Playgroud)

但我想插入更多文字

ng-bind="input | filter + 'more' "
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有没有办法在ng-bind中添加更多文本,就像你只是使用时一样{{}}:

{{input | filter}} more
Run Code Online (Sandbox Code Playgroud)

angularjs ng-bind angular-filters

60
推荐指数
1
解决办法
5万
查看次数