Articles of passport.js

快速护照会议不起作用

我正在构build一个Node应用程序,在这个应用程序中用户必须注册或login,然后当他们拖放一些元素(前端全部正常工作)时,我在数据库上存储他们的行为以及相应的userId。 我的理解是,一旦他们注册/login,我可以使用req.user来访问他们的ID并正确地存储他们的行动,但它不工作。 这是我的server.js文件中处理Passport的部分。 另外,我使用Sequelize作为ORM,但是所有处理数据库的东西在没有req.user部分的情况下都是完美的。 app.use(cookieParser()); app.use(bodyParser.json()); app.use(passport.initialize()); app.use(passport.session()); /****** Passport functions ******/ passport.serializeUser(function (user, done) { console.log('serialized'); done(null, user.idUser); }); passport.deserializeUser(function (id, done) { console.log("start of deserialize"); db.user.findOne( { where : { idUser : id } } ).success(function (user) { console.log("deserialize"); console.log(user); done(null, user); }).error(function (err) { done(err, null); }); }); //Facebook passport.use(new FacebookStrategy({ //Information […]

NodeJS – 护照给我404login错误

我刚刚实现了一个简单的login使用Passport.js和护照本地和一切似乎工作,除了最后的redirect。 当我用不好的证书login时,我得到一个错误,因为它应该发生。 但是,当我用正确的凭据login,我得到一个404错误没有明显的原因。 源代码太广泛了,所以你可以在GitHub上find它们: https : //github.com/JacobCZ/nodewiki (看看config / express,config / passport,models / user和views / auth)

用nodeJSlogin系统

我有我的login系统本地主机和注册页面正在工作,但不是login页面。 它不断显示我无效的密码。 顺便说一句我正在使用MongoDB作为我的数据库。 在我的MongoDB上,我可以查看已存储在mongo shell中的数据。 我很欣赏那些能够查看这些代码的人。 谢谢!! 图像: 显示无效的密码图像 这里是我的代码: app.js var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var exphbs = require('express-handlebars'); var expressValidator = require('express-validator'); var flash = require('connect-flash'); var session = require('express-session'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var mongo = require('mongodb'); […]

麻烦authentication

在使用护照本地策略执行我的restful apiauthentication时,我正面临一个混淆问题。 注意:当我在index.js中完成所有工作时,我的authentication工作已经成功。 但我想在类中使用更好的代码分离。 我有一个passport.js模块 // config/passport.js // load all the things we need var LocalStrategy = require('passport-local').Strategy; // load up the user model var mysql = require('mysql'); var dbconfig = require('./database'); var connection = mysql.createConnection(dbconfig.connection); module.exports = function(passport) { // passport needs ability to serialize and unserialize users out of session passport.serializeUser(function (user, done) […]

如何处理passport.deserializeUser()中的错误?

我有Express和Passport这样configuration: var express = require("express"); var site = express(); var flash = require("connect-flash"); var passport = require("passport"); site.use(require("cookie-parser")()); site.use(require("body-parser").urlencoded({extended:false})); site.use(require("express-session")(…)); site.use(flash()); site.use(passport.initialize()); site.use(passport.session()); 我有一个很好的deserializeUser的股票实现(我使用MySQL支持的local身份validation通过Bookshelf): var db = require("./database.js"); // exports models eg db.User passport.deserializeUser(function(id, done) { db.User.findById(id).then(function (user) { done(null, user); }).catch(function (err) { done(err, null); }); }); 我遇到了以下特定问题:当从数据库中删除login用户(例如,当站点pipe理员删除用户时),反序列化会失败,如预期的那样, CustomError("EmptyResponse")书架。 但是,我不知道如何处理。 done(err, null)最终只会导致错误消息和堆栈跟踪以HTML格式返回给客户端。 问题是: 如何从deserializeUser提供自定义,优雅的error […]

通过Passport OAuthstream传递URL参数

我目前使用优秀的Passport框架在node.js中实现了Google OAuth2,但是我发现很难通过工作stream中的URL参数。 我想要做的例子,将是像/analysis?id=1234 ,然后能够加载该具体的分析。 一旦你已经通过身份validation并且会话还没有过期,它就起作用,但是当你还没有通过身份validation的时候它还不能正常工作。 我正在努力将其传递给我认为的callbackURL。 任何指导将不胜感激! 这是我到目前为止(只有相关的代码) var session = require('express-session'); var storage = require('node-persist'); var passport = require('passport'); var GoogleStrategy = require('passport-google-oauth2').Strategy; var GOOGLE_CLIENT_ID = "<google_client_id>" , GOOGLE_CLIENT_SECRET = "<google_client_secret>", GOOGLE_CALLBACKURL = "http://localhost:1425/auth/google/callback"; app.use(session({ maxAge: 86400000, // 24 hours secret: 'no-one-will-find-out', resave: true, saveUninitialized: true })); var sess; app.use(passport.initialize()); app.use(passport.session()); storage.initSync(); passport.use(new GoogleStrategy({ […]

从Req.User()获取信息到ExpressJS中的Req.params()

在用户login到我的Express应用程序之后,我想将它们redirect到一个url,其内容如下: www.mysite.com/:user 我遇到麻烦的是,当人们在login后req.params ,我的req.params对象将作为一个空对象文字出现。 理想情况下,我想要做的是以req.user存储的信息,并将一些信息传递到URL中。 所以基本上我想从这里得到: router.post('/login', passport.authenticate('local', {successRedirect:'/', failureRedirect: '/login', failureFlash: true})); 到这里: router.get('/:user', function(req, res) { //stuff } login后, req.user对象读取如下所示: { username: joesmith@mail.com, name: Joe Smith, password: dkei348#$kDL^583L, formulas: [] } 我试图使用的代码如下所示: router.get('/:user', function(req, res) { var user = req.user.name; req.params = { "user": user } 但这是行不通的,因为最初req.user.name是未定义的,如果有人还没有login,所以我不能通过控制台错误。 显然我不明白如何req.params生成足够的细节来解决这个问题。 谢谢。

改造得到400不好的请求,但与邮递员合作

我的api基地的url是: https://locodealapi.herokuapp.com/api/deals 在邮递员通过后面的标题,它工作正常。 x-access-token:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ.5XFJnJqTsfID9uqOwkNf46oraj9jDxic7qNSqBdunD0 在改造接口我有以下但得到400坏请求 @POST("api/deals") Call<ResponseBody> deals(@Header("x-access-token") String x_access_token) 调用代码: Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://locodealapi.herokuapp.com") .addConverterFactory(GsonConverterFactory.create()) .client(httpClient.build()) .build(); AppRestAPI client = retrofit.create(AppRestAPI.class); Call<ResponseBody> call1 = client.deals( token ); call1.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { Log.i(TAG, "The response is " + response.message()); Log.i(TAG, "The response is " + response.body()); […]

使用Windows身份validationloginAngular App

我创build了一个angular度2应用程序。 现在,这些是Windows身份validation的要求。 1)如果组织内的任何用户访问此应用程序,他不应该得到login提示,并应能够直接login到应用程序。 2)如果组织内的任何特定用户试图访问应用程序,那么他应该得到特定的angular色(如pipe理员,pipe理员),并能够直接login。 3)如果组织外的任何用户试图访问应用程序,他应该得到login提示 。 编辑:后端也将发挥重要的作用。 我已经创build了其余的API使用节点js和expression。 那么这个护照包在我的情况下会有帮助吗? 我已经在我的节点js rest API上实现了passport.js,但现在如何在angular度上validation这个事情。 任何帮助将不胜感激和赏金。

PassportJS – 如何获取会话对象

我在我的节点应用程序中实现了passportJS。 login后,我得到一个对象,我放在会话中。 这是对象: { loginStatus: 'SUCCESS', orgRoles: { '7': 'ALL' }, orgNames: { '7': 'kianoshp@gmail.com' }, loginId: 4, message: 'Success', success: true } 这是护照configuration(在coffeescript): passport.serializeUser (user, done) -> console.log 'serializing', user done null, user passport.deserializeUser (user, done) -> console.log 'deserializing', user done null, user #passport LocalStrategy passport.use new LocalStrategy usernameField: 'email' passwordField: 'password' , (username, […]