Tag: 护照

什么是passport.initialize()? (nodejs express)

我正在尝试在我的应用程序中应用护照模块。 我正在阅读一些手册,并说, app.use(passport.intialize()); app.use(passport.session()); 什么是app.use(passport.initialize())到底在干什么? passport.session()也许是为护照使用会话信息, 但我不知道passport.initialize()

未定义的消息variablesNodeJS

我一直在遵循本教程为我的节点应用程序来实现身份validation: https : //scotch.io/tutorials/easy-node-authentication-setup-and-local 我遇到的问题是我运行应用程序时出现此错误:(我的代码是exacltly应该如何根据上述网站)。 我试图寻找一个答案,但我可以得到的最好的是添加这个函数到我的服务器代码: app.use(function(req, res, next){ res.locals.message = req.flash(); next(); }); 这加载应用程序没有任何错误,但是,消息似乎并没有显示在我的前端。 不完全确定为什么,但林只能得到这个问题,我可以实现消息没有任何问题在我的其他项目。 我已经在下面添加了我的github链接,但是我的代码里有一些我的代码: routes.js app.post('/signup', passport.authenticate('local-signup', { successRedirect : '/dashboard', failureRedirect : '/#contact', failureFlash : true })); passport.js if (user) { return done(null, false, req.flash('signupMessage', 'Email already in use!')); } index.ejs <% if (message.length > 0) { %> <div class="alert alert-danger"><%= […]

{

我有一个帆应用程序。 我正在尝试实施Facebooklogin。 当我点击loginFacebook的button,我得到这个错误: error: A server error occurred in a request: error: FacebookTokenError: This authorization code has been used. 完整的错误日志看起来像这样: error: A server error occurred in a request: error: FacebookTokenError: This authorization code has been used. at Strategy.parseErrorResponse (/home/node_modules/passport-facebook/lib/strategy.js:198:12) at Strategy.OAuth2Strategy._createOAuthError (/home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:341:16) at /home/node_modules/passport-facebook/node_modules/passport-oauth2/lib/strategy.js:166:45 at /home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:123:9) at IncomingMessage.<anonymous> (/home/node_modules/passport-facebook/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:143:7) at IncomingMessage.emit (events.js:117:20) […]

Node.js / SAML:如何解密RequestedSecurityToken的内容

我正在使用passport-wsfed-saml2 ,WS-fed和SAML2协议的护照策略。 逻辑的WS-fed部分似乎不处理其内容是<xenc:EncryptedData>元素的RequestedSecurityToken元素。 这使得该策略与具有指定encryption证书的ADFS 2.0依赖方不兼容。 我想用一些解密逻辑对策略的WsFederation.extractToken方法进行修补。 下面是我想要预处理的RequestSecurityTokenResponse xml示例。 我应该如何去解密令牌? 具体来说,如何将<KeyInfo>元素中提供的信息与<xenc:CipherData>元素结合使用来访问明文标记数据。 <?xml version="1.0" encoding="UTF-8"?> <t:RequestSecurityTokenResponse xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"> <t:Lifetime> <wsu:Created xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2017-01-05T21:02:07.193Z</wsu:Created> <wsu:Expires xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">2017-01-05T22:02:07.193Z</wsu:Expires> </t:Lifetime> <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Address>https://localhost</wsa:Address> </wsa:EndpointReference> </wsp:AppliesTo> <t:RequestedSecurityToken> <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Type="http://www.w3.org/2001/04/xmlenc#Element"> <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#"> <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> </e:EncryptionMethod> <KeyInfo> <o:SecurityTokenReference xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <X509Data> <X509IssuerSerial> <X509IssuerName>CN=token-signing, OU=SomeOrg, O=EvilCorp, L=Williston, S=VT, […]

如何获得使用手柄的Flash消息?

我正在尝试使用我的车把模板闪存工作,但它不工作。 我如何显示消息 if(!user)return done(null,false,{message:'No user found'}) 和 return done(null,false,{message:'Oops!Wrong password。'}) 在警报框? 已安装的软件包:express,connect-flash,express-handlebars,护照,本地护照,express-session,connect-mongo app.use(flash()) passport.use(new LocalStrategy(function(username, password, done) { User.findOne({ username: username }, function(err, user) { if (err) return done(err) if (!user) return done(null, false, { message: 'No user found'}) user.comparePassword(password, function(err, isMatch) { if (isMatch) { return done(null, user) } else { return done(null, false, […]

在通过护照实例的快速路由中路由分离

我正在尝试将用户login模块添加到节点中的现有应用程序。 它使用单独的路由文件为每个模块和一个主路由文件使用最终在server.js中使用的所有子路由当我尝试将passport实例传递给用户路由时,由于未定义passport,因此导致错误。 这里是我的应用程序代码和结构: app views user index.ejs login.ejs signup.ejs profile.ejs routes docs index.js user index.js index.js config passport.js server.js server.js const express = require('express') const app = express() const path = require('path') const bodyParser = require('body-parser') const cookieParser = require('cookie-parser') const passport = require('passport') const flash = require('connect-flash') const session = require('express-session') const routes = […]

Passport身份validation系统不工作

我有一个身份validation系统安装在我的快递节点应用程序,但我已经遇到了一些与我设置的护照authentication错误。 例如,注册系统工作正常,我的validation系统(基本上检查用户/通过组合对我学校的成绩簿login是否有效)也能正常工作。 但是,实际的护照login(它检查用户/传递组合是否是我的mongoose数据库中的注册用户)不能正常工作。 closuresapp.js的一部分 //passport setup app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(function (username, password, done) { User.findOne({username: username}, function (err, user) { user.checkLogin(password, function (error, userIsValid) { if (error) { console.log('Error:'); return done(error); } if (userIsValid) { console.log('Valid:'); } }); }); })); user.js的 var mongoose = require('mongoose'); var passportLocalMongoose = require('passport-local-mongoose'); var Schema = mongoose.Schema; var bcrypt […]

如何在login后请求用户数据,Node.JS

大家好,我是Node新手,请耐心等待。 无论如何,我目前正在为我的新节点应用程序的身份validation。 到目前为止,我有能力获得一切基本工作(login,注册,注销)。 我现在进入我的用户个人资料的设置页面,但我无法访问{{username}}或{{email}},例如,它保留空白或抛出一个错误。 我想知道如何让用户名,电子邮件和其他信息保留在会话中,或者一旦我的用户login后就可以访问它,以及以后如何向会话添加更多信息(这很重要,因为我需要做到这一点)。 这是我的代码: 注册(不包括validation) var newUser = new User({ username: username, email:email, password: password }); User.createUser(newUser, function(err, user){ if(err) throw err; console.log(user); req.flash('success_msg', 'You are registered and can now login'); login: router.post('/login', passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}), function(req, res) { res.redirect('/'); }); 我不确定我需要显示什么代码,但是如果你们需要看别的东西来帮助我,请告诉我。 我用快递,护照和车把来使用Node.JS。 谢谢!

在Node.js上使用passport-ldapauth进行LDAPauthentication

我一直在与护照ldapauth挣扎了几天,我没有更多的想法,我做错了什么。 简而言之,我有一个使用两种护照策略的项目:本地和LDAP。 本地策略对我来说是完美的,但LDAP是有问题的。 我有一个AD的只读用户(我们称之为“ldap-read-only-admin”),我可以通过外部LDAP客户端连接到这个用户并查看相关的OU。 我也三重检查了SearchBase,这似乎是正确的。 但是,当将相同的configuration传递给passport-ldapauth时,它似乎无法绑定用户凭据(我猜)。 任何想法如何debugging这将非常感激。 这是app.js: var express = require("express"); var app = express(); var path = require("path"); var session = require("express-session"); var mongoose = require("mongoose"); var passport = require("passport"); var flash = require("connect-flash"); var cookieParser = require("cookie-parser"); var bodyParser = require("body-parser"); var morgan = require("morgan"); var configDB = require('./config/database.js'); require('./config/passport.js')(passport); // pass […]

如何正确使用passport.js

我正在尝试使用护照库来validationAPI请求。 要开始,我已经创build了一个NodeJS应用程序与快速框架。 该项目包含一些提供某些数据的apis。 在公共文件夹中,它包含具有用户名和密码字段的index.html页面。 的index.html <form action="/login" method="post"> <div> <label>Username:</label> <input type="text" name="name"/> </div> <div> <label>Password:</label> <input type="password" name="password"/> </div> <div> <input type="submit" value="Log In"/> </div> </form> 创build一个server.ts ,创build一个http服务器,并监听某个端口,并使用express框架创buildapis。 Server.ts let userList: User[] = [new User(1, "Sunil"), new User(2, "Sukhi")]; let app = express(); // passport library let passport = require('passport'); let LocalStrategy = require('passport-local').Strategy; […]