小编Ale*_*lls的帖子

Express会话与PassportJS会话

Express应用程序中的Express会话和Passport会话冲突吗?为什么或者为什么不?

以下是一些区分Express和Passport会话对象的代码:

    app.use(express.session({}));
    app.use(passport.session());

    app.use(session({
        cookie : {
            maxAge : 60000
        }
    }));
Run Code Online (Sandbox Code Playgroud)

express passport.js

14
推荐指数
1
解决办法
6708
查看次数

在ES6生成器功能中使用return

如果你使用return语句而不是yield,我很难找到会发生什么.

function *gen(){

 const val = yield someAsyncFn();
 assert.equal(val,4);
 return val;

}
Run Code Online (Sandbox Code Playgroud)

退货的收益与收益率有何不同?我假设return作为一个普通的return语句,但是生成器函数的上下文,它也会调用gen.return()吗?有点令人困惑.

也许以上只是与此相同?

   function *gen(){

     const val = yield someAsyncFn();
     assert.equal(val,4);
     yield val;

   }
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-6

14
推荐指数
2
解决办法
4524
查看次数

给定数字而不是数组的函数循环

假设我手上有一个数字 18,而不是一个数组。

给定数字 X 而不是 X 元素数组,在 JS 中创建功能循环的最佳方法是什么?

我可以做这个:

[1,2,3].forEach(function(){

));
Run Code Online (Sandbox Code Playgroud)

但如果我有数字 3

我可以

for(var i = 0; i < 3; i++){

}
Run Code Online (Sandbox Code Playgroud)

但我希望该循环能够正常工作

javascript node.js

14
推荐指数
2
解决办法
5万
查看次数

git copy file,而不是`git mv`

我意识到git的工作原理是区分文件的内容.我有一些我想复制的文件.为了绝对防止git变得困惑,是否有一些git命令可用于将文件复制到不同的目录(不是mv,但是cp),并且还可以暂存文件?

git cp git-mv

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

Node.js - nodemon vs node - 开发与生产

我想使用$>npm start它并使用"nodemon"进行开发,使用"node"进行生产.我不能把条件逻辑放在我的package.json文件中,那么最好的方法是什么呢?

node.js npm nodemon

13
推荐指数
4
解决办法
1万
查看次数

没有*数据库会话的Passport令牌身份验证*

我正在寻找一种方法来使用Passport.js的Twitter策略,而无需在数据库中使用会话集合/表.这样做的原因是我们将会话集合中的所有数据保存得非常大,并且每当用户发出请求时我们都会保存数据库往返,因为我们不必每次都去数据库获取会话数据.

无论如何,我们应该能够使用令牌(JSON Web令牌)来验证用户,这篇伟大的文章如何描述:

https://scotch.io/tutorials/authenticate-a-node-js-api-with-json-web-tokens

但我很困惑为什么没有一种简单的方法可以用Passport做到这一点?(文章在没有Passport的情况下完成所有工作 - 但是Passport肯定会覆盖这个吗?).

也许我正在过度思考这个问题并且这样做的方法就是省略我在Express中使用数据库会话的调用,然后Passport已经足够智能来处理JWT了?不知怎的,我怀疑.

例如,仅仅在我的Express服务器中注释掉这些代码是不够的:

//app.use(expressSession({
//    secret: 'arrete_x_paulette',
//    store: new MongoStore({mongooseConnection: mongoose.connection}),
//    saveUninitialized: true,
//    resave: true,
//    cookie: {
//        secure: false,
//        maxage: 6000000
//    },
//    proxy: false
//}));
Run Code Online (Sandbox Code Playgroud)

//app.use(passport.session());
Run Code Online (Sandbox Code Playgroud)

那么使用Passport就足够了?

为什么有人会使用存储在数据库中的会话而不是使用基于JWT的身份验证?

node.js express jwt express-jwt passport.js

13
推荐指数
1
解决办法
4203
查看次数

使用npm包验证包名称

有没有办法使用npm包来验证包名?

const npm = require('npm');

const isValid = npm.validatePackageName('foobar'); // true
const isValid = npm.validatePackageName('-4! *'); // false
Run Code Online (Sandbox Code Playgroud)

我看到一个userland包执行此操作,但肯定npm包本身可以做到这一点?是否有从该包中导出的公用事业?

node.js npm

13
推荐指数
1
解决办法
730
查看次数

Express Passport.js:req.user VERSUS req.session.passport.user

根据这篇文章

http://toon.io/understanding-passportjs-authentication-flow/

看起来好像PassportJS/Express将登录用户存储在两个地方

req.user
Run Code Online (Sandbox Code Playgroud)

req.session.passport.user
Run Code Online (Sandbox Code Playgroud)

为什么两个?我应该使用哪一个?当我使用护照注销时,是否会销毁req.user和req.session.passport.user?

node.js express passport.js

12
推荐指数
1
解决办法
7161
查看次数

使用Java和Node.js创建Docker容器

我不确定为什么我期望这个工作:

 # Dockerfile    
 FROM node:6
 FROM java:8
Run Code Online (Sandbox Code Playgroud)

但它确实不起作用 - 看起来第一个命令被忽略,第二个命令工作.

有没有一种直接的方法在Docker容器中安装Node.js和Java?

最终我试图解决的问题是我在运行Selenium Webdriver时遇到ENOENT错误 -

[20:38:50] W/start - Selenium Standalone server encountered an error: Error: spawn java ENOENT
Run Code Online (Sandbox Code Playgroud)

而现在我认为这是因为Java没有安装在容器中.

java selenium node.js docker dockerfile

12
推荐指数
3
解决办法
9453
查看次数

使用Angular 1.6拦截器保护标头或cookie

我有这个$ http请求拦截器

app.config(function($httpProvider) {
  $httpProvider.interceptors.push(function() {
    return {
      request: function(req) {
        // Set the `Authorization` header for every outgoing HTTP request
        req.headers['cdt_app_header'] = 'tamales';
        return req;
      }
    };
  });
});
Run Code Online (Sandbox Code Playgroud)

有没有什么办法可以为每个$ http请求添加标头或cookie,但是使用JavaScript保持标头值安全/不可见?

我们可以添加一个带有此标头的模糊层,以防止轻松访问我们的API端点,但我想知道一个更真实安全的解决方案.

Cookie用于安全会话,这些更安全,因为无法使用JavaScript访问它们.假设我们有一个用户可以使用前端代码执行此请求:

GET /api/users
Run Code Online (Sandbox Code Playgroud)

我们真的不希望他们能够使用cURL或浏览器发出简单的请求,而无需额外的信息.我们给他们的cookie将使他们能够使用浏览器地址栏向/ api/users发出GET请求,但是如果我们添加要求另外有一个cookie或标头,那么我们可以阻止他们访问端点以我们不希望他们使用的格式授权的.

换句话说,我们希望尽力为他们提供访问权限,但仅限于前端Angular应用程序的上下文.

javascript browser cookies http-headers angularjs

12
推荐指数
1
解决办法
352
查看次数