คำถามติดแท็ก passport.js

2
ทำความเข้าใจกับหนังสือเดินทางทำให้เป็นอันดับซีเรียล
คุณจะอธิบายเวิร์กโฟลว์ของวิธีการทำให้เป็นอันดับและวิธีการซีเรียลไลเซชันของ Passport อย่างไรให้กับคนธรรมดา ไม่อยู่ที่ไหนuser.idไปหลังจากที่passport.serializeUserได้รับการเรียกว่า? เรากำลังโทรหาpassport.deserializeUserหลังจากนั้นมันเข้ากับกระแสงานได้ที่ไหน? // used to serialize the user for the session passport.serializeUser(function(user, done) { done(null, user.id); // where is this user.id going? Are we supposed to access this anywhere? }); // used to deserialize the user passport.deserializeUser(function(id, done) { User.findById(id, function(err, user) { done(err, user); }); }); …

6
วิธีการนำ REST API ที่ปลอดภัยไปใช้กับ node.js
ฉันเริ่มวางแผน REST API ด้วย node.js, express และ mongodb API ให้ข้อมูลสำหรับเว็บไซต์ (พื้นที่สาธารณะและส่วนตัว) และอาจเป็นแอปมือถือในภายหลัง ส่วนหน้าจะถูกพัฒนาด้วย AngularJS บางวันฉันได้อ่านมากมายเกี่ยวกับการรักษาความปลอดภัย REST APIs แต่ฉันไม่ได้รับการแก้ไขขั้นสุดท้าย เท่าที่ฉันเข้าใจคือการใช้ HTTPS เพื่อให้ความปลอดภัยขั้นพื้นฐาน แต่ฉันจะป้องกัน API ในกรณีการใช้งานได้อย่างไร: ผู้เยี่ยมชม / ผู้ใช้เว็บไซต์ / แอพเท่านั้นที่ได้รับอนุญาตให้รับข้อมูลสำหรับพื้นที่สาธารณะของเว็บไซต์ / แอพ ผู้ใช้ที่ผ่านการรับรองและได้รับอนุญาตเท่านั้นที่ได้รับอนุญาตให้รับข้อมูลสำหรับพื้นที่ส่วนตัว (และเฉพาะข้อมูลที่ผู้ใช้ให้สิทธิ์) ในขณะนี้ฉันคิดว่าจะอนุญาตให้ผู้ใช้ที่มีเซสชันที่ใช้งานอยู่ใช้ API เท่านั้น ในการอนุญาตผู้ใช้ฉันจะใช้หนังสือเดินทางและขออนุญาตฉันต้องใช้บางสิ่งเพื่อตัวเอง ทั้งหมดอยู่ด้านบนของ HTTPS ใครสามารถให้การฝึกฝนหรือประสบการณ์ที่ดีที่สุดได้บ้าง? มี "สถาปัตยกรรม" ของฉันขาดหรือไม่

6
Passport.js - ข้อผิดพลาด: ไม่สามารถทำให้ผู้ใช้เป็นอนุกรมในเซสชัน
ฉันมีปัญหากับโมดูล Passport.js และ Express.js นี่คือรหัสของฉันและฉันแค่ต้องการใช้การเข้าสู่ระบบ hardcoded สำหรับการลองครั้งแรก ฉันได้รับข้อความเสมอ: ฉันค้นหามากและพบบางโพสต์ใน stackoverflow แต่ฉันไม่ได้รับความล้มเหลว Error: failed to serialize user into session at pass (c:\Development\private\aortmann\bootstrap_blog\node_modules\passport\lib\passport\index.js:275:19) รหัสของฉันมีลักษณะเช่นนี้ 'use strict'; var express = require('express'); var path = require('path'); var fs = require('fs'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var nodemailer = require('nodemailer'); var app …

3
passport.js รับรองความถูกต้องสงบ
มีวิธีจัดการกับการรับรองความถูกต้อง (ตัวอย่างเช่นภายในและ Facebook) โดยใช้ passport.js ผ่าน RESTful API แทนที่จะใช้ผ่านเว็บอินเตอร์เฟส ข้อกังวลเฉพาะเจาะจงคือการจัดการการส่งผ่านข้อมูลจากการเรียกกลับไปยังการตอบกลับแบบสงบ (JSON) กับการใช้ res.send ทั่วไป ({data: req.data}), การตั้งค่าจุดเริ่มต้น / การล็อกอินที่เปลี่ยนเส้นทางไปยัง Facebook (/ ล็อกอินไม่สามารถ เข้าถึงได้ผ่าน AJAX เนื่องจากไม่ใช่การตอบสนอง JSON - เป็นการเปลี่ยนเส้นทางไปยัง Facebook ด้วยการโทรกลับ) ฉันพบhttps://github.com/halrobertson/test-restify-passport-facebookแต่ฉันมีปัญหาในการทำความเข้าใจ นอกจากนี้ passport.js จะจัดเก็บข้อมูลรับรองความถูกต้องอย่างไร เซิร์ฟเวอร์ (หรือบริการเป็นบริการนี้) ได้รับการสนับสนุนโดย MongoDB และฉันคาดหวังว่าข้อมูลประจำตัว (ล็อกอินและแฮชของ pw) จะถูกเก็บไว้ที่นั่น แต่ฉันไม่ทราบว่า passport.js มีความสามารถประเภทนี้หรือไม่

4
พาสปอร์ตเซสชัน () มิดเดิลแวร์ทำอะไร
ฉันกำลังสร้างระบบการตรวจสอบการใช้ Passport.js ใช้โหนดรับรองความถูกต้องง่ายต่อการติดตั้งและการกวดวิชาท้องถิ่น ฉันสับสนเกี่ยวกับสิ่งที่passport.session()ทำ หลังจากที่เล่นรอบกับตัวกลางที่แตกต่างกันฉันมาที่จะเข้าใจว่าexpress.session()คือสิ่งที่จะส่งรหัสเซสชันคุกกี้ให้กับลูกค้า แต่ฉันสับสนเกี่ยวกับสิ่งที่ทำและทำไมมันเป็นสิ่งจำเป็นที่นอกเหนือไปจากpassport.session()express.session() นี่คือวิธีตั้งค่าแอปพลิเคชันของฉัน: // Server.js กำหนดค่าแอปพลิเคชันและตั้งค่าเว็บเซิร์ฟเวอร์ //importing our modules var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); var configDB = require('./config/database.js'); //Configuration of Databse and App mongoose.connect(configDB.url); //connect …

7
Everyauth vs Passport.js?
EveryauthและPassport.jsดูเหมือนจะมีชุดคุณลักษณะที่คล้ายกันมาก อะไรคือการเปรียบเทียบเชิงบวกและเชิงลบระหว่างสองสิ่งที่ทำให้ฉันอยากใช้อีกแบบหนึ่ง

7
passport.js passport.initialize () มิดเดิลแวร์ไม่ได้ใช้งาน
ฉันใช้ node กับ express + พังพอนและพยายามใช้ passport.js กับ api ที่สงบ ฉันยังคงได้รับข้อยกเว้นนี้หลังจากการตรวจสอบสิทธิ์สำเร็จ (ฉันเห็น URL เรียกกลับบนเบราว์เซอร์): /Users/naorye/dev/naorye/myproj/node_modules/mongoose/lib/utils.js:419 throw err; ^ Error: passport.initialize() middleware not in use at IncomingMessage.req.login.req.logIn (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/http/request.js:30:30) at Context.module.exports.delegate.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/middleware/authenticate.js:194:13) at Context.actions.success (/Users/naorye/dev/naorye/myproj/node_modules/passport/lib/passport/context/http/actions.js:21:25) at verified (/Users/naorye/dev/naorye/myproj/node_modules/passport-facebook/node_modules/passport-oauth/lib/passport-oauth/strategies/oauth2.js:133:18) at Promise.module.exports.passport.use.GitHubStrategy.clientID (/Users/naorye/dev/naorye/myproj/config/passport.js:91:24) at Promise.onResolve (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:162:8) at Promise.EventEmitter.emit (events.js:96:17) at Promise.emit (/Users/naorye/dev/naorye/myproj/node_modules/mongoose/node_modules/mpromise/lib/promise.js:79:38) at Promise.fulfill …

6
จะทราบได้อย่างไรว่าผู้ใช้ล็อกอินด้วย passport.js?
ฉันอ่านpassport.jsข้อมูลและตัวอย่างมาสองวันแล้ว แต่ไม่แน่ใจว่าหลังจากนั้นฉันก็ทำตามขั้นตอนการพิสูจน์ตัวตนทั้งหมด ฉันจะรู้ได้อย่างไรว่าฉันเข้าสู่ระบบแล้วเช่นฉันจะมีแถบนำทางที่มีปุ่มล็อกอินหรือออกจากระบบมีตัวแปรบางอย่างเช่นโค้ดด้านล่างนี้หรือไม่? if (login) <button>logout</button> else <button>login</button>

7
เปลี่ยนเส้นทางไปยังหน้าที่แล้วหลังจากการพิสูจน์ตัวตนใน node.js โดยใช้ passport.js
ฉันกำลังพยายามสร้างกลไกการเข้าสู่ระบบโดยใช้ node.js, express และ passport.js การเข้าสู่ระบบใช้งานได้ค่อนข้างดีนอกจากนี้เซสชันจะถูกจัดเก็บไว้อย่างดีด้วยการ redis แต่ฉันมีปัญหาในการเปลี่ยนเส้นทางผู้ใช้ไปยังจุดที่เขาเริ่มต้นก่อนที่จะได้รับแจ้งให้ตรวจสอบสิทธิ์ เช่นผู้ใช้ดังต่อไปนี้การเชื่อมโยงhttp://localhost:3000/hiddenถูกเปลี่ยนเส้นทางไปแล้วแต่แล้วฉันต้องการให้เขาถูกนำกลับมาอีกครั้งเพื่อhttp://localhost:3000/loginhttp://localhost:3000/hidden จุดประสงค์ของสิ่งนี้คือหากผู้ใช้เข้าถึงเพจโดยสุ่มที่เขาต้องเข้าสู่ระบบก่อนเขาจะถูกเปลี่ยนเส้นทางไปยังไซต์ / ล็อกอินโดยให้ข้อมูลประจำตัวของเขาจากนั้นจะถูกเปลี่ยนเส้นทางกลับไปยังไซต์ที่เขาพยายามเข้าถึงก่อนหน้านี้ นี่คือโพสต์ล็อกอินของฉัน app.post('/login', function (req, res, next) { passport.authenticate('local', function (err, user, info) { if (err) { return next(err) } else if (!user) { console.log('message: ' + info.message); return res.redirect('/login') } else { req.logIn(user, function (err) { if (err) …

2
การใช้ PassportJS จะส่งผ่านฟิลด์แบบฟอร์มเพิ่มเติมไปยังกลยุทธ์การพิสูจน์ตัวตนภายในได้อย่างไร
ฉันใช้ passportJS และฉันต้องการที่จะจัดหามากกว่าเพียงreq.body.usernameและreq.body.passwordกับกลยุทธ์การตรวจสอบของฉัน (หนังสือเดินทางท้องถิ่น) ฉันมีเขตข้อมูลแบบฟอร์มที่ 3: username, passwordและfoo ฉันจะเข้าถึงได้อย่างไรreq.body.fooจากกลยุทธ์ในพื้นที่ของฉันซึ่งมีลักษณะดังนี้: passport.use(new LocalStrategy( {usernameField: 'email'}, function(email, password, done) { User.findOne({ email: email }, function(err, user) { if (err) { return done(err); } if (!user) { return done(null, false, { message: 'Unknown user' }); } if (password != 1212) { return done(null, false, …

3
หนังสือเดินทางท้องถิ่นด้วย node-jwt-simple
ฉันจะรวมพาสปอร์ต - ท้องถิ่นเพื่อคืนโทเค็น JWT ในการพิสูจน์ตัวตนสำเร็จได้อย่างไร ฉันต้องการใช้node-jwt-simpleและดูที่passport.jsฉันไม่แน่ใจว่าจะดำเนินการอย่างไร var passport = require('passport') , LocalStrategy = require('passport-local').Strategy; 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: 'Incorrect username.' }); } if (!user.validPassword(password)) { return done(null, …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.