Tag: passport.js

通过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, […]

passportjsauthentication使用谷歌应用程序的电子邮件ID

我正在尝试护照与谷歌应用程序电子邮件ID的JS。 我能够使用gmail.com电子邮件ID进行身份validation。 但是,如果电子邮件ID是谷歌应用程序ID(google.com/a/companyname.com),我如何才能进行身份validation。 这是我的代码 var express = require('express'); var app = express(); var passport = require('passport'); var GoogleStrategy = require('passport-google').Strategy; passport.use(new GoogleStrategy({ returnURL: 'http://10.3.0.52:3000/auth/google/return', realm: 'http://10.3.0.52:3000/' }, function(identifier, profile, done) { User.findOrCreate({ openId: identifier }, function(err, user) { done(err, user); }); } )); app.get('/auth/google', passport.authenticate('google')); app.get('/auth/google/return', passport.authenticate('google', { successRedirect: '/', failureRedirect: '/login' })); app.get('/', function(req, […]

在Passport.js中configuration本地策略

我有点新Node.js和以下是我的问题。 我有这样的代码, passport.authenticate('local', function (error, user, info) { console.log("authentication happening"); console.log(info); if (error) { return res.send(error); } else if (!user) { return res.send("User not found"); } else { req.logIn(user, function (error) { if (error) { return res.send(error); } else { return res.json( { id: user }); } }); } return false; })(req, res, next); //如果我删除了最后一组参数,它不会给出错误,它会做什么? […]

.call(this)在JavaScript中的成语

在一些JavaScript中,我看到: var passport = require('passport') function Strategy(options, verify) { //… passport.Strategy.call(this); } 什么是passport.Strategy.call(this); 在做什么?

Github的OAuth v3 API的passport-github支持

我注意到https://github.com/jaredhanson/passport-github模块支持OAuth v2,但一段时间没有更新。 有谁知道是否会更新,以支持目前的Github OAuth v3 API? 具体而言,我正在寻找一种方法来轻松地添加范围列表(类似于https://github.com/pksunkara/octonode支持),以及通过CSRFvalidation的状态。

使用MEAN堆栈和Passport时,如何在用户注册时保存其他字段?

当用户在我的网站上注册时,我试图保存的不仅仅是电子邮件和密码。 所有护照示例仅显示电子邮件和密码正在存储。 如果我还有用户注册时需要存储的“性别”和“名称”字段怎么办? 我花了整整一天的时间,试图找出没有运气。 这是我目前使用的: passport.js: passport.use('local-signup', new LocalStrategy({ usernameField : 'email', passwordField : 'password', passReqToCallback : true }, function(req, email, password, done) { process.nextTick(function() { User.findOne({ 'email' : email }, function(err, user) { if (err) return done(err); if (user) { return done(null, false, req.flash('signupMessage', 'Email is already taken.')); } else { var newUser = […]