Tag: 护照

尝试访问节点js中的req.user属性时,无法读取未定义的属性“用户名”

我正在使用MEAN堆栈。 我想要访问req.user属性。 但是我得到一个错误,说当我尝试显示当前用户的用户名时, 不能读取未定义的属性“用户名” 。 我回到了一些网站。 https://www.airpair.com/express/posts/expressjs-and-passportjs-sessions-deep-dive 类似的问题Node + Express + Passport:req.user未定义 有人提到中间件function的顺序很重要。 我纠正了这些。 我仍然得到同样的错误。 我的错误是什么? app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var mongo = require('mongodb'); var mongoose = require("mongoose"); var expressValidator = require('express-validator'); var flash […]

使用护照快速找不到用户的凭证

我面临一个奇怪的问题,我的应用程序使用用户的fb凭据login,但我不能看到他的电子邮件,名称或ID等这里是我在我的users.js路线: – router.get('/auth/facebook',passport.authenticate('facebook', {scope: ['email', 'user_friends']})); router.get('/auth/facebook/callback', passport.authenticate('facebook',{ successRedirect:'/profile',failureRedirect:'/'},function(req,res){ console.log("in passport req"); //doesn't get printed console.log(req); })); 在我的configuration/ passport.js我正在做: – var configAuth=require('./auth'); //holds all appID, secret and successurl var FacebookStrategy=require('passport-facebook').Strategy; var passport=require('passport'); module.exports=function(passport){ passport.use(new FacebookStrategy({ clientID: configAuth.facebookAuth.clientID, clientSecret: configAuth.facebookAuth.clientSecret, callbackURL: configAuth.facebookAuth.callbackURL, profileFields: ['id', 'displayName', 'photos', 'email'] }, function(accessToken, refreshToken, profile, cb) { console.log("the user's credentials […]

护照JWT – 未经授权

我遇到了一个问题,那就是它总是返回给我。 当我设置标题授权给收到的令牌。 它返回。 擅自 。 router.get('/dashboard', passport.authenticate('jwt', {session: false}), (req, res) => { res.json('It worked: User ID is: ' + req.user._id); }); 。 var jwtOptions = { jwtFromRequest: ExtractJwt.fromAuthHeader(), secretOrKey: config.jwt.secretOrKey //issuer: config.jwt.issuer, //audience: config.jwt.audience, }; passport.use(new JWTStrategy(jwtOptions, (jwt_payload, done) => { User.findOne({id: jwt_payload.id}, (err, user) => { if (err) { return done(err, false); } […]

Node.js,express,护照authentication“Bad Request”

我正在使用Cloud 9来build立一个基本的社交媒体网站,并且在注册和用户身份validation方面遇到困难。 我正在使用Node.js,express和passport进行身份validation,并使用mongoDB作为数据库。 // PASSPORT Setup // app.use(require("express-session")({ secret: "I am the best", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); // INDEX Page app.get("/", function(req, res) { res.render("landing-page"); }); // REGISTER NEW app.get("/register", function(req, res) { res.render("user/register"); }); // REGISTER CREATE app.post("/register", function(req, res) { var user = req.body.user; var newUser […]

如何debugging护照

我不能为了我的生活似乎弄清楚如何debugging护照战略。 我只是在概念上做了一些可怕的错误? 我一直在这里b了我大概10个小时,还没有接近一点。 这是我第一次使用护照。 在这个特定的场景中,我正在使用passport-jwt。 我知道对象键是不正确的,但我只是想通过使用console.log()跟踪通过服务器的path,所以我明白事情是如何工作的。 我甚至没有达到passport.use( new JwtStrategy(..)) 。 我遗漏了不必要的代码。 连接到我的mongodb是好的,我的mongoose模式是好的。 我正在testing使用testing路线server.get('/fakelogin', …)做一个请求 – 承诺POST到/api/login 。 我也尝试使用curl -X POST并修改发布path到url查询参数。 我只是不断得到一个“未经授权”的错误,没有护照战略代码console.log有史以来就开始。 服务器 var server = express(); server.use(passport.initialize()); let opts = { jwtFromRequest: ExtractJwt.fromBodyField('token'), secretOrKey: config.apiKey, algorithms: [ 'HS256', 'HS384' ], ignoreExpiration: true }; passport.use(new JwtStrategy(opts, function( jwt_payload, done ) { // mongoose users query against […]

如何通过MongoStore查找存储在Mongo中的会话?

我正在使用Express-session和护照和MongoStore来存储我的会话。 他们显然被存储在MongoDB中,我怎么才能访问它们只是为了看看? 没有商业价值,这只是从理论和技术的angular度来看,我感兴趣,谢谢!

LinkedIN OAuthlogin麻烦Nodejs

我正在使用LinkedIn OAuth和护照进行login。无论什么原因,我第一次尝试login时,它会在没有login的情况下路由到主页。然而,第二次login正确。 什么可能导致这个问题? LinkedIn或护照? 这是获取path: router.get('/auth/linkedin/callback', passport.authenticate('linkedin', {failureRedirect: '/', failureFlash:true}), function (req, res, next) { User.findOne({_id: req.user._id}, function (err, user) { if (err) { return next(err); res.redirect("/") } user.last_login = moment(); user.save() return res.redirect('/profile/' + user.username); }); }); 然后护照链接在: passport.use(new LinkedInStrategy({ clientID: config.linkedin.consumerKey, clientSecret: config.linkedin.consumerSecret, callbackURL: config.linkedin.callbackURL, state: true, scope: ['r_basicprofile', 'r_emailaddress']}, function (token, refreshToken, […]

无法将用户序列化到会话中

可以注册,并提示无效的用户名/密码,但打破用户成功login时,用户错误序列化失败。我似乎无法弄清楚我做错了什么。 我试图弄清楚如何实现multer和上传个人资料图片,并打破了X( 路线/ user.js的 var express = require('express'); var router = express.Router(); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var User = require('../models/user'); // Register router.get('/register', function(req, res){ res.render('register'); }); // Login router.get('/login', function(req, res){ res.render('login'); }); // Register User router.post('/register', function(req, res){ var firstName = req.body.firstName; var middleName = req.body.middleName; var lastName = […]

React-native iOS如何获取用户Steam ID

我正在尝试使用需要使用OpenIdlogin的蒸汽开发人员API的反应本机ios应用程序(和使用护照的node.js服务器)。 我正在使用这个护照库https://github.com/liamcurry/passport-steam 在使用networking应用程序的示例中,用户单击链接,实质上被redirect到蒸汽网页进行login,然后在login后redirect回应用程序。 使用React-Native for iOS是否有可能重现这种相同的行为? 基本上打开safari,让用户login,然后redirect回应用程序,并将用户steamID传递回应用程序? login的唯一目标是获取用户steamID。 更新:我能够成功地链接到蒸汽login使用的反应原生文档的信息在这里: https : //facebook.github.io/react-native/docs/linking.html但是,缺less的链接是链接回到应用程序。

Passport Google OAuth2login前需要注销

我试图使用护照来validation谷歌login,但是,如果你尝试login第一次进入该页面,你会得到一个TokenError: TokenError: Bad Request at Strategy.OAuth2Strategy.parseErrorResponse (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:329:12) at Strategy.OAuth2Strategy._createOAuthError (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:376:16) at /home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/lib/strategy.js:166:45 at /home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:191:18 at passBackControl (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:132:9) at IncomingMessage.<anonymous> (/home/ubuntu/workspace/node_modules/passport-google-oauth/node_modules/passport-google-oauth20/node_modules/passport-oauth2/node_modules/oauth/lib/oauth2.js:157:7) at emitNone (events.js:72:20) at IncomingMessage.emit (events.js:166:7) at endReadableNT (_stream_readable.js:921:12) at nextTickCallbackWith2Args (node.js:442:9) at process._tickDomainCallback (node.js:397:17) 但是,如果您转到注销端点,然后login,则可以正常工作。 这里是代码: app.get('/login', authenticationController.handler); app.post('/login', authenticationController.postLogin); app.get('/logout', authenticationController.logout); app.get('/auth/google', passport.authenticate('google', {scope:['email', 'profile']})); app.get('/auth/google/callback', passport.authenticate('google', {failureRedirect: '/login'}), (req, res)=>{ var returnTo […]