Articles of login

passportjs – 来自节点的发布请求不authentication用户

我有以下的ajax后,这是完美的passportjs工作。 $(document).ready(function(){ $('#btn-login').click(function() { var email = $('#loginEmail').val(); var password = $('#loginPassword').val(); var emailValidation = new RegExp(/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([az]{2,6}(?:\.[az]{2})?)$/i); if(!email | !password) { $('#loginLabel').text('Email and password are required.'); } else if(!emailValidation.test(email)) { $('#loginLabel').text('Email format is invalid.'); } else { var userData = { username: email, password: password }; var request = $.ajax({ type: 'POST', url: '/login', data: […]

passport-facebook Strategy.parseErrorResponse

我正在尝试设置Facebook身份validation,并且每次调用callback函数时都会收到一个错误,它会在/node_modules/passport-facebook/lib/strategy.js:196:12处引发一个Strategy.parseErrorResponse 没有消息告诉我什么是错的。 我检查,以确保我的clientID和秘密是正确的(正如我看到这可能发生,如果他们是错的)。 passport.use(new FacebookStrategy({ clientID: myId, clientSecret: mySeceret, callbackURL: callBackUrl, passReqToCallback : true }, (req, accessToken, refreshToken, profile, done) => { process.nextTick(() => { if (req.user) { done(null, req.user); if (!req.user.facebookId) { req.user.facebookId = profile.id; req.user.save().then(() => { done(null, req.user); }); } else { done(null, req.user); } } else { User.find({where: {facebookId: profile.id}}, function […]

使用Passport在Express中传递参数

我使用Express和Passport做了一个小型的login应用程序。 但似乎我不能指导用户进入一个特定的用户configuration文件。 用户需要填写一个HTML表单,他必须redirect到他自己的configuration文件页面(为了简单起见,可以说这个页面与其他用户页面只有标题不同)。 我有这在我的用户路线。 (即routes / users.js) router.get('/userprofile', authenticationMiddleware(), function (req, res, next) { res.render('userprofile'); }); router.post('/login', passport.authenticate('local-login', { successRedirect: '/users/userprofile', failureRedirect: '/users/login', failureFlash: true })); 在我的passport.jsconfiguration文件中,我有这个。 passport.use('local-login', new LocalStrategy({ usernameField: 'username', passwordField: 'password', passReqToCallback: true }, function (req, username, password, done) { db.pool.getConnection(function (err, connection) { if(err) throw err; var query = connection.query('SELECT * […]

为什么“&SAMLRequest”会附加到我的ADFS入口点URL?

我使用adfs IDP和saml sso使用passport-saml。 我的切入点如下: https://<domain-name>/adfs/ls/IdpInitiatedSignon.aspx?loginToRp=https://<domain-name>/saml/metadata 当我给这个URL时,adfs ssologin页面加载正常,但是当我运行应用程序时, &SAMLRequest被附加了这个URL: https://<domain-name>/adfs/ls/IdpInitiatedSignon.aspx?loginToRp=https%3A%2F%2F<domain-name>%2Fsaml%2Fmetadata&SAMLRequest=nVNBbtswEPyKwLskS0lQh7BsODaKGkhbw1Z76CVgyJVDgCJV7ipxfl9KtgIfGh18IrA7HM7OLGeLY22iV%2FConS1YlkzYYj5DUZuGL1t6sTv42wJSFGAWed8oWOstdwI1citqQE6S75ffH3meTHjjHTnpDIs264I93cL09uY5z%2FPptMrvIBdimrHo9%2FBguBGAiC1sLJKwFEqT7EucZXGWl%2FmE5xm%2FuUvus%2Fs%2FLNqeqR%2B0VdoexnU8n0DIv5XlNt7%2B3JcsWiKCp%2FDwyllsa%2FB78K9awq%2FdY8FeiBrkaao7IdK4VlXaACbS1SxaBw%2B0FdSLHkGmQlWYGkw3qtlYTVoQqL0%2BWGcTgc1xYdxB29LtmmKMpfM5rYGEEiTYKRDe2%2BQvkhg3QAzDsrlxUpgYjo0HxBgsaXqPtZqlF7xD6j8C0Wa9dUbL92tS%2F%2Bp8LehzdJZkfUWruOqhHGqhzVKpTlzIyBj3tvIQjCsY%2BRZYOkg77yKofjNDhgTHqzZz5epGeI1dmHAUkgaLL4lXJji4g%2Boaw0dhksuOOpS34XhzXnWLDTIMVnphsXGeztH8T8%2F81PvEjo%2Fu5e%2Bd%2FwM%3D&SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&Signature=EdEYkblB2aOEWvoeMtmWVOkeePocMAeRu2gGBRWrjyQvx%2BEP8eekHSb4IQwodJIui%2BXw%2F%2B0ziKD%2FmwFgaIlFhmWa3ZXpiluzhG8OjK2CaH1trnXNrZM3L%2FYANlXwVl2Z4WF4GF8EP7tmIci8XxFrdP%2Fz3EZ2rlCRdELJV%2FK9wNUUiMFF6FLdExcvZieb5ug15I9wynZndhzAZL46f3cjPvMpsJ9oekR8OKIejXmYOevW0OMq%2BbGGipHKE6B1WwTSaPWGrhdEYPSTHvKpmWrz%2F%2FDscCdF9zLqv%2FGY7TgMhTg9FtlfeQ2jnqeaABBilgYaF4B5zLfCGKk5BmxqwzazGg%3D%3D &符号导致页面加载错误,但是当我用其他符号replace这个符号时,页面加载正常。 为什么是这样的,我该如何解决?

Node / Express JS身份validation:除了Passport JS以外还有其他什么?

我通常使用Javascript(JQuery)客户端制作网站,并使用PHP + MySQL服务器端进行用户authentication,在线订购系统等。 我一直在学习node / express,socket.io,mongoDB / mongoose和护照几个月,并且正在考虑用它们来替代PHP + MySQL服务器端,让我的网站更实时/互动。 我的网站的用户是技术精明的,所以浏览器的兼容性不是一个问题。 Passport是节点/快递的唯一生产级本地authentication系统吗? (通过mongoDB在本地存储在我的服务器上的用户名/密码)

如何使用护照发送JSON响应给broswe

嗨我想做本地login使用passport.Everything运作良好,但是我想能够显示用户名一旦用户身份validation这里是我的代码使用Node.js和MySQL: passport.use(new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true // allows us to pass back the entire request to the callback }, function(req, email, password, done) { var status = []; console.log('—–'); connection.query('SELECT username FROM user WHERE email ="' + email + '"', function(err, rows) { if (err) return done(err); if (rows.length) { status.push({ username: […]

如何使用Node.js和Passport进行身份validation后,使用自己的ID将用户redirect到主页?

我刚刚开始学习node.js,所以在我身上很容易:P 我正在使用护照来validation用户。 成功validation后,用户需要redirect到他的主页,并将其ID作为URL参数,例如: /home?id=325346546 这是我的routes.js的一部分 // process the login form app.post('/', passport.authenticate('local-login', { successRedirect : '/home?id='+req.user._id, //error because 'req' isn't declared failureRedirect : '/', failureFlash : true })); 这是我的想法,我想通过ID作为参数的URL。 我曾试图把一个 function(req, res) { } 但它没有工作。 任何帮助将不胜感激。

Nodejs Express:login后发送不同的页面

我正在尝试使用expressjs创build一个网站。 如果他已经login,我想发送一个不同的页面给用户。 我能够发送原始的HTML网站,但链接的文件,如index.css不beeing加载! app.use(cookieParser()); app.use(expressSession({secret:'somesecrettokenhere', resave: false, saveUninitialized: true})); app.use(bodyParser()); //app.use(express.static(path.join(__dirname, '../client/login'))); // disable layout var mainPage = express.static(path.join(__dirname, '../client/main')); var loginPage = express.static(path.join(__dirname, '../client/login')); app.get('/', function (req, res, next) { console.log('getting /'); if (req.session.userName) { //app.use(express.static(path.join(__dirname, '../client/main'))); console.log("logged in"); mainPage(req, res, next); }else { //app.use(express.static(path.join(__dirname, '../client/login'))); console.log("not logged in"); loginPage(req, res, next); } }); […]

使用请求和护照npmlogin帐户

我正在使用nodejs作为一个项目,现在我想用护照npmlogin我的帐户,但是不能从请求发布方法的网页中完成? 主要的代码是这样的: router.post('/login',function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) { return next(err); } if (!user) { return res.json(null); } req.logIn(user, function(err) { if (err) { return next(err); } //return res.redirect('/'); redirect not work }); })(req, res, next); }); router.get('/check',function(req, res, next) { request.post({ url:'http://localhost/login', headers:{ 'Content-Type': 'application/x-www-form-urlencoded' }, form:{ username:'myname', password:'mypassword' […]

NodeJS – 在套接字内部访问会话

我花了2天访问会话(login用户)通过套接字。 我已经有用户在我的MongoDB,我确实可以login/注册他们没有sockets(槽后或得到)。 我现在需要的只是套接字。 我已经尝试过这些SO解决scheme: socket.io并表示4个会话 如何与Socket.IO 1.x和Express 4.x共享会话? socket.io和会话? 并花费大量的时间search。 尝试不同的事情 我通常会得到未定义的错误或不推荐使用的错误,或者完全没有错误发生。 在遵循上面的教程之后,我自己做了一些调整,我的代码从“难以阅读”变为“太难阅读,必须从头开始”。 所以我不会把我的代码放在这里。 相反,有人可以分享他们最基本的代码来访问套接字内部的会话吗? 随着解释将不胜感激。 更新我跟着这个: 如何与Socket.IO 1.x和Express 4.x共享会话? 我有几个问题。 它仍然不起作用。 会话是空的。 难道我做错了什么? 完整代码: var express = require("express"); var Server = require("http").Server; var session = require("express-session"); var RedisStore = require("connect-redis")(session); var SESSION; var app = express(); var server = Server(app); var sio = require("socket.io")(server); […]