Tag: passport.js

IdentityServer nodejs令牌问题

我试图在身份服务器上授权我的nodejs服务器。 我在nodejs中使用passport-openidconnect库。 我的nodejs代码: var express = require('express'); var session = require('express-session'); var RedisStore = require('connect-redis')(session); var Strategy = require('passport-openidconnect').Strategy; module.exports.configure = function configure(app, passport) { var auth = { authorizationURL: 'https://localhost:44333/core/connect/authorize', tokenURL: 'https://localhost:44333/core/connect/token', userInfoURL: 'https://localhost:44333/core/connect/userinfo', clientID: 'NodeJsClient', clientSecret: 'fakeSecret', callbackURL: '/auth/callback', scope: 'openid profile email offline_access', responseType: "id_token" }; app.use(session({ secret: 'someSecret', resave: false, saveUninitialized: […]

是否有可能使用PassportJS没有本地数据库?

我有一个应用程序使用与护照捆绑在一起的所有oAuth身份validation,但我正在使用外部服务来创build数据库/用户。 如果我做这样的事情: passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, username, password, done) { request.post('http://myapiservice.com/createuser').then(function(err, response, body){ return done(err, body.user); }) })) 我将如何使用这个远程存储的用户? 我没有以任何方式连接到数据库,除了一个POST API调用创build用户和一个GET调用来检索用户,所以我不知道req.user将如何performance/得到更新。 无法find一个单一的指南或其他地方的问题,所以会喜欢一点指导!

用户注册使用护照+ express + mysql + sequelize

我正在尝试使用Passport,MySql,NodeJS和Sequelize构build用户注册api。 我面对的唯一问题是,当一个用户注册一次,他试图用相同的电子邮件重新注册用户被抛出一个401未经授权的错误,而不是用户对象。 当我试图debugging相同的响应,我从服务器得到这个[对象SequelizeInstance:用户]。 这些文件已经在下面提到。 多谢提前一吨!!! Passport.js文件: var LocalStrategy = require('passport-local').Strategy; var mysql = require('mysql'); var Model = require('../models/models.js'); // expose this function to our app using module.exports module.exports = function(passport) { // ========================================================================= // passport session setup ================================================== // ========================================================================= // required for persistent login sessions // passport needs ability to serialize and unserialize users […]

我如何将护照js凭证转发给GitHub?

我正在使用passport.js与GitHub策略来validation用户。 我已经成功实现了用户login,并且可以查询服务器上当前用户的凭证( req.user )。 现在我想能够从我的应用程序中使用GitHub api。 由于CORS,我的设置是这样的: User Action <-> GET / POST <-> My Web Server <-> GET / POST <-> GitHub 问题是我的Web服务器需要在代表他们向GitHub发送请求时传递用户凭据。 我如何“前进”我的用户会话到GitHub? 我在我的服务器上使用superagent来调用GitHub API。

快递护照到app.use(路线)

我试图发送护照到app.use('/ api')(护照),但我似乎得到一个错误,当这样做。 我应该甚至把它发送到app.use(),或者我可以recuire()它在profile.js文件? 我是新来expression,并正在跟随如何实施passport.js教程。 F:\App\node_modules\express\lib\router\index.js:140 var search = 1 + req.url.indexOf('?'); ^ TypeError: Cannot read property 'indexOf' of undefined at Function.handle (F:\App\node_modules\express\lib\router\index.js:140:27) at EventEmitter.handle (F:\App\node_modules\express\lib\application.js:173:10) at app (F:\App\node_modules\express\lib\express.js:38:9) at ExpressRouter (F:\App\app\backend\router\routes.js:15:31) at Object.<anonymous> (F:\App\app\backend\backend.app.js:36:27) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) at Module.require (module.js:468:17) at require (internal/module.js:20:19) […]

节点快递护照(JWT) – auth后callback

我有authentication工作与护照智威汤逊,但我有困难运行callback函数/响应, 只有当用户通过身份validation。 如何才能做到这一点? 在我的路线: import express from 'express'; import passport from '../../config/passport'; import memberInfoCtrl from '../controllers/memberInfo'; const router = express.Router(); router.route('/members') .get(membersCtrl.tokenCheck, passport.authenticate('jwt', { session: false }), membersCtrl.doSomethingElse); export default router; 如果authentication成功,我想要membersCtrl.doSomethingElse运行。 这是我的tokenCheckfunction: function tokenCheck(req, res, next) { const token = getToken(req.headers); if (token) { const decoded = jwt.decode(token, config.secret); User.findOne({ email: decoded.email }, (err, […]

使用mongoose的承诺进行护照authentication

var LocalStrategy = require('passport-local').Strategy; var User = require('../models/user'); module.exports = function(passport){ passport.use('local-signup', new LocalStrategy({ usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function(req, email, password, done){ User.findOne({'local.username': email}).exec() .then(function(user) { console.log(user); if(user){ return done(null, false, {message: 'Username already taken!'}); } else{ var newUser = new User(); newUser.local.username = email; newUser.local.password = password; return newUser.save(); } }) […]

Passport自定义callback是如何工作的?

我不明白这个例子 app.get('/login', function(req, res, next) { passport.authenticate('local', function(err, user, info) { if (err) { return next(err); } if (!user) { return res.redirect('/login'); } req.logIn(user, function(err) { if (err) { return next(err); } return res.redirect('/users/' + user.username); }); })(req, res, next); }); 我看到发生在这里的是 app.get('path', function(req, res, next) {/*bunch of code*/})(req, res, next) 如何工作,因为它不是一个函数的引用(req,res,next)?

Node.JSvalidationGoogle身份validation令牌

我正在尝试使用Express.JS框架构build一个Node.JS REST服务器,该框架集成了用于移动应用程序的Google身份validation。 使用的Node.JS版本是0.12.7。 validation从应用程序接收到的Google令牌时出现问题,因为看起来我尝试加载的模块返回错误。 用于validation此令牌的模块是passport-google-token [1]。 用于初始化此模块并检查令牌的代码如下所示: index.js文件 'use strict'; import express from 'express'; import passport from 'passport'; import {setTokenCookie} from '../../auth.service'; var router = express.Router(); router .post('/callback', passport.authenticate('google-token'), setTokenCookie); export default router; passport.js文件 import passport from 'passport'; import GoogleTokenStrategy from 'passport-google-token'; export function setup(User, config) { passport.use(new GoogleTokenStrategy({ clientID: config.google.clientID, clientSecret: config.google.clientSecret }, function(accessToken, […]

关心JWT安全

最近,我使用护照和node.js实现了JWT策略…但是,我开始担心这个概念。 一旦有人访问了智威汤逊,是否可以用来检索受保护的数据呢? 而不是获得访问JWT,就像使用chrome开发工具一样简单? 我可以尝试减less失效date,但是……只要用户的详细信息是相同的,每次产生的令牌也是一样的,这是不是真的? 那么到期日是什么时候,如果你最后还是以同样的道理结束呢? 我相信我在某处错过了这个观点。 指导将不胜感激。 谢谢。