Articles of passport.js

在Node.js和Express中loggingangular色

我是Node.js和Express中的新成员,并且使用Passport访问控制存在问题。 我想检查用户login的angular色。 我的用户架构: let mongoose = require('mongoose'); let userSchema = new mongoose.Schema({ name:{ type: String, required: true }, email:{ type: String, required: true }, password:{ type: String, required: true }, username:{ type: String, required: true }, role:{ type: String, default: 'user' }, activated:{ type: Boolean, default: false } }); let User = module.exports = mongoose.model('User', […]

NodeJS TypeError('JwtStrategy需要一个秘密或密钥');

我已经尝试了我replace的JwtStrategy实现 User.findOne({id:jwt_payload.id}) User.getUserById(jwt_payload._doc._id,(err,user) 这是在user.js文件里面我runnning index.js时得到的错误是: – H:\rprfinal\node_modules\passport-jwt\lib\strategy.js:29 throw new TypeError('JwtStrategy requires a secret or key'); ^ TypeError: JwtStrategy requires a secret or key at new JwtStrategy (H:\rprfinal\node_modules\passport-jwt\lib\strategy.js:29:15) at module.exports (H:\rprfinal\config\passport.js:10:18) at Object.<anonymous> (H:\rprfinal\index.js:42:29) at Module._compile (module.js:569:30) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:503:32) at tryModuleLoad (module.js:466:12) at Function.Module._load (module.js:458:3) at Function.Module.runMain (module.js:605:10) at startup (bootstrap_node.js:158:16) at […]

Passport-SAML:读取用户信息

还是小菜一碟! 我正在构build一个Node应用程序,并且我已经设置了各种所需的端点。 我的项目的一个要求是使用SAML机制进行身份validation。 我在我的应用程序中使用passport-SAML进行身份validation。 到目前为止,我已经能够设置和使用SAML策略,我的应用程序可以调用idp入口点,并从Idp接收回应。 我无法理解我们如何访问由idp返回的用户信息,以便我可以使用SAML返回的用户信息来创build和维护会话。 const saml = require('passport-saml'); module.exports = function (passport, config) { passport.serializeUser(function (user, done) { done(null, user); }); passport.deserializeUser(function (user, done) { done(null, user); }); var samlStrategyOptions = new saml.Strategy( { // URL that goes from the Identity Provider -> Service Provider callbackUrl: config.passport.saml.callback_url, // path: config.passport.saml.path, // URL that […]

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: […]

护照本地的一个node.js应用程序与多个路线文件

我已经成功地遵循这个教程,并做了我的基于Node.js的应用程序。 现在我想添加护照本地支持login一些特定的路线。 我发现关于使用Passport的每个教程都只适用于只有一个path文件的应用程序。 但我有我的路线在多个文件(在app.js ): var index = require('./routes/index'); var config = require('./routes/config'); var about = require('./routes/about'); var run = require('./routes/run'); var device = require('./routes/device'); var user = require('./routes/user'); 例如在routes / config.js中 : router.get('/', server_controller.index); router.get('/server/create', server_controller.server_create_get); router.post('/server/create', server_controller.server_create_post); router.get('/server/:id/delete', server_controller.server_delete_get); router.post('/server/:id/delete', server_controller.server_delete_post); 在routes / device.js中,我们有需要login的路由: router.get('/', device_controller.index); router.get('/change-ip', device_controller.device_edit_ip_get); router.post('/change-ip', device_controller.device_edit_ip_post); 那么我应该如何在这些不同的path文件中使用护照本地中间件? 更新 :在routes […]

Nuxt.js与护照失去req.user

我正在努力使用Nuxt.js和Passport.js Node.js应用程序。 我用vuexlogin并设置用户数据。 行动: nuxtServerInit ({ commit }, { req }) { if (req.session && req.session.authUser) { commit('SET_USER', req.session.authUser) } } 突变: SET_USER: function (state, user) { state.authUser = user } 它工作正常,但是当我试图访问页面,只能通过loged用户访问出现问题。 axios.get('http://localhost:3000/api/articles/add') router.get('/api/articles/add', ensureAuthenticated, (req, res) => { res.send({ title: 'Add Article' }) }) function ensureAuthenticated (req, res, next) { if (req.isAuthenticated()) { return […]

将状态传递到回送oAuthcallback

我正在开发一个投票在我的网站上。 我只想要授权的用户投票。 所以我使用Facebook OAuthauthentication用户。 我的后端是build立在node.js和使用回环框架。 我正在使用passport-facebook lib执行所有授权的东西。 当用户按下投票button,后端检查用户是否被授权,并保存投票或否则redirect用户login页面。 一切都很好,但现在用户必须在授权后再次按下投票button。 我读到有一种方法可以将状态作为查询parameter passing到OAuthredirectURL。 这可以使用passport.js 完成 。 但是,回环隐藏实现,只提供静态jsonconfiguration。 至less我在docker和回购站里找不到任何提及。 所以我的问题是如何处理? 谢谢你的帮助。

用户身份validation错误 – Passport.js

即时通讯使用passport.js(本地策略)来validation用户,但我收到以下错误: Unhandled "error" event. (Incorrect arguments) 详细的错误消息: index.js文件: const {register: registerUser, login: loginUser} = require('../controllers/authentication'); // login router .route('/login') .post(loginUser); Authentication.js文件: // login function let login = (req,res) => { if(!req.body.email || !req.body.password){ sendJsonResponse(res, 400, {"message": "All fields required"}); return; } passport.authenticate('local', (err, user, info) => { let token; if(err){ sendJsonResponse(res, 404, err); return; } […]

尝试在节点中实现JWT身份validation。 在受保护的路线上获得未经授权

我正在尝试实施JWT身份validation。 /login和/注册工作正常,他们返回身份validation令牌,但是当我尝试GET /秘密头'授权'='JWT token_received',它返回一个string'未经授权',我可以看到从JWTStrategy没有日志logging。 请让我知道我要去哪里错了。 var opts = {} opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken(); opts.secretOrKey = "very_secret" passport.use(new JwtStrategy(opts, function(payload, next){ console.log("payload received" + payload); User.findById(payload.id, function(err, user){ console.log("user found:" + user); if(err){ return next(err, false) } else if(user){ return next(null, user) } else{ return next(null, false) } }); } )); app.use(passport.initialize()); app.post("/login", function(req, res){ var email […]

会话pipe理,用于node + express js中的多个并发用户

我正在尝试使用移动设备作为pipe理员login,成功login后,我在响应头中设置了Cookie。 同时,当我尝试从其他设备(笔记本电脑)访问路由时,我从其他设备获得所有pipe理员访问权限。 如何为多个用户维护会话? 此外,问题是我试图保持全局对象(login/注销button的基础上,如果用户在login或不)的视图状态与服务器端呈现丢失。 我的意思是所有的JavaScriptvariables数据(在我的情况下DataMixin对象)都会丢失。 如何开发同构riotjs应用程序? 请参阅reactJs中的类似问题: https : //github.com/reactjs/react-chartjs/issues/57 州: document.addEventListener('DOMContentLoaded', function (e) { DataMixin = { //Global object setAuthentication: function(){ if(arguments[0] != null){ localStorage.setItem('role', arguments[0][0]); localStorage.setItem('loginStatus', arguments[0][1]); } }, getRole: function(){ return localStorage.getItem('role'); }, } } 视图: <a href="#" if="{DataMixin.getRole() == ROLE_USER}">ADMIN LOGIN</a> <li if="{DataMixin.getRole() == 'ROLE_ADMIN'}"> <a onclick="{logout}">LOGOUT</a> </li> 使用node + express从服务器端加载页面: […]