小编lag*_*lex的帖子

使用PostgreSQL安装PassportJS

是否有一个使用PostgreSQL设置PassportJS的演练教程(即用PostgreSQL替换MongoDB)?

node.js passport.js

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

Passport JS"无法在发送后设置标头"

使用护照JS成功登录时出现此错误.登录后尝试重定向到主页.

执行它的代码:

app.post('/login', 
  passport.authenticate('local', {failureRedirect: '/login' }),
  function(req, res) {
    res.redirect('/');
  });
Run Code Online (Sandbox Code Playgroud)

完全错误:

Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (http.js:644:11)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?不确定为什么会发生这种错误.我仍然可以使用该应用程序,我只是不想要错误.

javascript node.js express passport.js

11
推荐指数
1
解决办法
7944
查看次数

passport.deserializeUser为每个HTTP请求执行DB(sequelize)命令

我使用sequelize作为ORM和passport.js(护照本地)进行身份验证.我注意到每个HTTP请求都会产生一个单独的数据库命令.我开始查看deserializeUser()函数.

加载单个页面时,这就是我得到的:

执行:SELECT*FROM UsersWHERE Users.id= 1 LIMIT 1;

一遍一遍又一遍!

GET/200 12ms - 780

执行:SELECT*FROM UsersWHERE Users.id= 1 LIMIT 1;

执行:SELECT*FROM UsersWHERE Users.id= 1 LIMIT 1;

一遍一遍又一遍!

GET /js/ui.js 304 4ms

一遍一遍又一遍!

GET /stylesheets/main.css 304 6ms

执行:SELECT*FROM UsersWHERE Users.id= 1 LIMIT 1;

一遍一遍又一遍!

GET /images/logo.jpg 304 3ms

以下是passport.deserializeUser的外观:

passport.deserializeUser(function(id, done) {
    User.find(id).success(function(user) {
        console.log('Over and over and over!');
        done(null, user);
    }).error(function(err) {
        done(err, null);
    }); …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js passport.js

11
推荐指数
1
解决办法
2280
查看次数

Angular JS + Node JS + Passport + Spring OAuth2身份验证/授权

我是PassportJS和AngularJS的新手,我对如何继续这项授权表示怀疑.

我有Spring REST API由Oauth2保护,但我必须像这样发送用户凭据:

[http://localhost:8080/myapp/oauth/token]
grant_type=password&username=email&password=password&client_id=09e749d8309f4044&client_secret=189309492722aa5a&scope=read
Run Code Online (Sandbox Code Playgroud)

在客户端我的应用程序我使用护照,我想授权/验证我的用户,我怎么能为此创建一个Stratagy?

我将发送我的服务器配置和我的安全库.

Server.js



    var fs = require('fs');
    var http = require('http');
    var https = require('https');
    var privateKey  = fs.readFileSync(__dirname + '/cert/privatekey.pem').toString();
    var certificate = fs.readFileSync(__dirname + '/cert/certificate.pem').toString();
    var credentials = {key: privateKey, cert: certificate};

    var express = require('express');
    var config = require('./config.js');
    var passport = require('passport');
    var security = require('./lib/security');
    var xsrf = require('./lib/xsrf');
    var protectJSON = require('./lib/protectJSON');
    require('express-namespace');

    var app = express();
    var secureServer = https.createServer(credentials, app);
    var server = http.createServer(app);

    // Serve …
Run Code Online (Sandbox Code Playgroud)

spring-security node.js oauth-2.0 angularjs passport.js

11
推荐指数
1
解决办法
4864
查看次数

passportjs出错:未知的身份验证策略"本地"

我正在开发一个nodejs应用程序并使用passportjs进行身份验证.我正在使用当地的护照策略.但是当我尝试登录时,我收到以下错误:

Error: Unknown authentication strategy "local"
    at attempt (/home/project/node_modules/passport/lib/middleware/authenticate.js:166:37)
    at authenticate (/home/project/node_modules/passport/lib/middleware/authenticate.js:338:7)
    at exports.authenticate (/home/project/controllers/RegistrationsController.js:87:4)
    at callbacks (/home/project/node_modules/express/lib/router/index.js:164:37)
    at param (/home/project/node_modules/express/lib/router/index.js:138:11)
    at pass (/home/project/node_modules/express/lib/router/index.js:145:5)
    at Router._dispatch (/home/project/node_modules/express/lib/router/index.js:173:5)
    at Object.router (/home/project/node_modules/express/lib/router/index.js:33:10)
    at next (/home/project/node_modules/express/node_modules/connect/lib/proto.js:193:15)
    at /home/project/node_modules/express-flash/lib/express-flash.js:31:7
Run Code Online (Sandbox Code Playgroud)

这是我的passport-config.js文件:

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var User = require('../models/user');

passport.serializeUser(function(user, done) {
  done(null, user.id);
});

passport.deserializeUser(function(id, done) {
  User.findById(id, function (err, user) {
    done(err, user);
  });
});

passport.use({usernameField: 'emailAddress'}, new LocalStrategy(function(username, password, done) {
  User.findOne({ emailAddress: username }, function(err, user) { …
Run Code Online (Sandbox Code Playgroud)

node.js passport.js

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

通过带有环回后端的角应用程序登录facebook

我正在使用strongloop loopback后端进行角度应用.

我还使用loopback-passport模块通过facebook整合第三方登录.

在loopback-example-passport中一切都很好,在重定向到我的应用程序之前,我的应用程序中的一切都很好.已创建用户和访问令牌.

代码:

app.get('/auth/login', ensureLoggedIn('/#login'), function(req, res, next) {
    console.log('LOOGED IN!!');
console.log(req.user);

  res.redirect('/#auth/login');
});
Run Code Online (Sandbox Code Playgroud)

工作良好.但我无法理解.如何为我的角度应用程序提供经过身份验证的状态

我试图让控制器路由'/#auth/login':

.controller('AuthCalbackCtrl', function($scope, $cookies, $location, AppAuth, $http, User, LoopBackAuth) {
//analogue of User.login responce interceptor
   LoopBackAuth.currentUserId = $cookies['userId'] || null;
   LoopBackAuth.accessTokenId = $cookies['access-token'] || '';
   LoopBackAuth.rememberMe = false;
   LoopBackAuth.save();
   //asking for currentUser
   User.getCurrent(function(user) {
     console.log('ser.getCurrent ', user);
   });
   $location.path('/');
  })
Run Code Online (Sandbox Code Playgroud)

此代码发出请求GET/api/users/2但收到401错误.

如果我调整文件/loopback/lob/models/user.js设置权限:

  principalType: ACL.ROLE,
  // principalId: Role.OWNER,
  principalId: Role.EVERYONE,
  permission: ACL.ALLOW,
  property: "findById"
Run Code Online (Sandbox Code Playgroud)

然后请求GET/api/users/2接收200并且一切正常.

我有点困惑.虽然我知道access-token和userId,但我无法理解如何使我的角度应用程序进行身份验证以进行环回

有任何想法怎么做?

angularjs loopbackjs passport.js

11
推荐指数
1
解决办法
4607
查看次数

NPM 6.2.0 - Npm install,我可以跳过npm审计吗?

我已经更新了我的npm版本,我认为npm audit是一个新功能.我可以跳过吗?因为当我运行npm audit我的一些软件包时,版本是从package.json更改的,我只想保持软件包和我的同事一样

npm package.json npm-install

11
推荐指数
2
解决办法
4451
查看次数

nodejs + passport + express 3.0 + connect-flash没有闪烁?

我正在使用护照本地策略来验证用户身份.我按照Jared Hanson给出的指南安装了connect-flash,以便为req对象提供flash方法.所以我的一个请求处理程序如下:

 app.post('/login',                             
      passport.authenticate('local', {           
          successRedirect: '/'                   
        , failureRedirect: '/login'              
        , successFlash: 'Bienvenido'             
        , failureFlash: 'Credenciales no válidas'                             
      })                                         
  );   
Run Code Online (Sandbox Code Playgroud)

当用户登录失败时,它会再次将用户重定向到/ login,但它不会闪现任何东西:/

更新:我使用mongodb进行会话存储,我看到了这个:

> db.sessions.find()
{ "_id" : "qZ2eiTnx6r9LR25JOz/TGhiJ", "session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{\"user\":\"4ffb5b5db9cc16b615000001\"},\"flash\":{\"error\":[\"Credenciales no válidas\"],\"success\":[\"Bienvenido\"]}}" }
Run Code Online (Sandbox Code Playgroud)

因此,消息将插入到会话对象中,但不会将其拉出.我应该做些特别的事吗?

connect node.js express passport.js

10
推荐指数
1
解决办法
7050
查看次数

在Passport.js中刷新令牌

我如何在Passport.js中执行此操作?:

当访问令牌过期时,您可以使用refresh_token"刷新"您的访问权限,并获得另一个access_token.要使用refresh_token,您需要向grant-endpoint执行POST请求,并将grant_type设置为refresh_token:

https://podio.com/oauth/token?grant_type=refresh_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&refresh_token=REFRESH_TOKEN
Run Code Online (Sandbox Code Playgroud)

node.js passport.js

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

nodejs中的简单登录页面使用express和带mongodb的护照

我创建了一个简单的登录表单,使用Jade和Express at/login,表单数据通过POST发送到/ login

起初它只是基于字符串的匹配(如果用户名== &&密码==)然后重定向到/ home或重定向到/ login

简单.

现在我想让它存储在mongodb数据库中的数据库驱动程序,用户名和密码,匹配db的用户名密码并执行程序.

我希望使用passportJS,但我完全不知所措,从创建数据库到配置护照.

有人可以帮助我如何制作一个简单的数据库驱动的登录页面?我对nodejs的东西很新.任何帮助都会受到重视

login mongodb node.js express passport.js

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