Tag: passport.js

协调Express(Passport)和AngularJS路线

我正在构build一个MEAN栈应用程序,最后到达创build用户身份validation的地步。 为此,我按照这个教程: http : //code.tutsplus.com/tutorials/authenticating-nodejs-applications-with-passport–cms-21619 现在,当我将其纳入我的项目时,它的工作,但只是部分。 也就是说,我可以正确浏览的唯一页面就是应用程序的主页。 如果我点击任何链接或在地址栏中键入除家以外的内容,则会将我带回login屏幕。 有什么可能的原因呢? 我的routes / index.js文件如下所示: var express = require('express'); var router = express.Router(); var isAuthenticated = function (req, res, next) { // if user is authenticated in the session, call the next() to call the next request handler // Passport adds this method to request object. A middleware […]

使用websocket在cookie中刷新一个jwt标记

我对刷新访问/ jwt令牌的一般stream程感到困惑。 我使用socketcluster作为客户端和服务器之间的主要通信方式。 最初的请求(服务的HTML)是由快递。 客户端可以通过github使用passport.js github策略login passport.use(new githubStrategy({ clientID:'********', clientSecret:'*******', callbackURL:'http://localhost:3000/auth/github/callback' }, function(accessToken,refreshToken,profile,done){ profile.token = jwt.sign({ id:profile.id, username:profile.username },'rush2112') return done(null,profile) } )) 带护照的社交策略似乎使用我忽略的会话,并为客户端login生成一个jwt令牌。 成功login,我使用下面的浏览器cookie中存储jwt app.get('/auth/github',passport.authenticate('github')) app.get('/auth/github/callback',passport.authenticate('github',{failureRedirect:'/fail'}), function(req,res){ var text = JSON.stringify({id_token: req.user.token}) res.cookie('id_token',text,{ expires: new Date(Date.now() + 900000), httpOnly: true }) res.redirect('/') } ) 然后我可以使用socket.request.headers.cookie从套接字访问cookie 然后我继续使用解码 var cookie = decodeURIComponent(socket.request.headers.cookie) var id_token = JSON.parse(cookie.split('=')[1]) […]

使用基本护照authentication时,请求不好的请求

我已经使用了基本的本地策略,并且我得到了400个错误的请求错误作为响应。我该怎么办,Iam使用邮递员提出请求。 下面我写了护照configuration。 当我试图使用/login数据{用户名:nivas@12345.com和密码:nivas12345} var LocalStrategy = require('passport-local').Strategy; var common = require('../routes/common'); // load up the user model var User = require('../model/user'); module.exports = function(passport) { console.log("passport is working upto here"); // // passport session setup // required for persistent login sessions // passport needs ability to serialize and deserialize users out of session // used […]

我无法使用passport-facebook来validation路线

下午好。 我前几天尝试使用express和passport-facebookvalidation路线,但没有成功。 而在客户端,我正在使用VueJs。 如果有人能帮我解决这个问题,我会很开心的。 我将在下面发布我的代码: express.js 'use strict'; let express = require('express'); let bodyParser = require('body-parser'); let cors = require('cors'); let cookieParser = require('cookie-parser'); let session = require('express-session'); let passport = require('passport'); let load = require('express-load'); module.exports = () => { let app = express(); //configurar a porta em que o express irá rodar app.set('port', […]

我怎样才能结合智威汤逊和护照Facebook?

我使用passportJS创build了一个快速应用程序,我试图使用JSON Web Tokens来validation我的api: 该应用程序同时具有本地和facebook用户,在mongoose模式中一起定义: var mongoose = require('mongoose'); var bcrypt = require('bcrypt-nodejs'); var UserSchema = mongoose.Schema({ name: { type: String }, password: { type: String }, local: { type: String, enum: [ '0', '1' ] }, fbId : String, fbToken : String, fbEmail : String, fbName : String }); UserSchema.pre('save', function(callback) { var user = […]

TokenError:代码已被兑换,TokenError:Bad Request – 护照Google OAuth 2

我有一个非常基本的护照设置,你可以看到下面。 每隔一段时间我会得到两个不同的错误。 TokenError: Code was already redeemed , TokenError: Bad Request原因我似乎无法find。 我已经看了很多(1周)的可能的解决scheme,但还没有find一个工作。 你看到当前代码有什么问题吗? app.get('/auth/google', redirect, passport.authenticate('google', { scope: ['profile', 'email'] })); app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/' }), function(req, res) { res.redirect('/'); } ); 这是两个错误: TokenError: Bad Request at Strategy.OAuth2Strategy.parseErrorResponse (/app/node_modules/passport-oauth2/lib/strategy.js:320:12) at Strategy.OAuth2Strategy._createOAuthError (/app/node_modules/passport-oauth2/lib/strategy.js:367:16) at /app/node_modules/passport-oauth2/lib/strategy.js:166:45 at /app/node_modules/oauth/lib/oauth2.js:177:18 at passBackControl (/app/node_modules/oauth/lib/oauth2.js:123:9) at IncomingMessage.<anonymous> (/app/node_modules/oauth/lib/oauth2.js:143:7) at emitNone […]

客户端(angular度2)authentication,谷歌作为服务器(node.js)

在这里,我一直在寻找答案。 我有一个REST端点的nodejs服务器。 每个端点都有isLoggedIn中间件,所以我可以通过电子邮件对用户进行身份validation。 客户端在端口4200上运行,服务器在端口3113上运行。 我想基本上是让我的客户redirect到Google的同意屏幕,如果没有通过身份validation。 由于端口是不同的,我得到: XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur…d=604408607019-ha937stehe6s3nk7ea892rviihrq5n4s.apps.googleusercontent.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access. 现在,我还没有尝试过什么… 🙂 我尝试使用CLI代理function(这是一个webpackconfiguration),并将所有/api请求转发到服务器。 我已经添加头到服务器,但后来我意识到,这是谁发送这个错误,而不是我的服务器。 我在这里看到很多相关的post。 到目前为止,我所见过的最好的解决scheme是放置一个loginbutton,并将呼叫置于href ,因为我不能在域之间进行Ajax调用。 这真的是最好的解决scheme吗? 在服务器上运行身份validation代码时,是不是有其他方法可以从客户端进行身份validation? 我甚至将所有相关端口添加到了API开发者,并将callback调用添加到Google开发者控制台。 顺便说一句,当一个客户端从同一个端口服务时,所有的工作都很好。 谢谢。

无法使用电子邮件与身份证本地nodejs..estried几个例子进行身份validation

我一直在尝试使用电子邮件和密码来使用本地通行证进行身份validation。 当我使用用户名时,我有类似的代码,它工作正常。 用电子邮件,我做了一些改变,但没有任何工作。 在types'post'的端点'/ login'处,users.js中的条件!用户条件(以下面显示为第二代码片段)以某种方式执行。 它甚至没有进入passport.use。 以下是代码: – 在user.js(模型文件)中, var mongoose=require('mongoose'); var bcrypt=require('bcryptjs'); //user schema var UserSchema=mongoose.Schema({ phone: { type:String, }, email:{ type: String, index:{unique:true} }, password:{ type: String }, firstname:{ type: String }, lastname:{ type: String } }); var User=module.exports = mongoose.model('User',UserSchema); module.exports.getUserByUsername=function(email,callback){ var query={email:email}; User.findOne(query, callback); } module.exports.comparePassword=function(candidatePassword, hash, callback){ bcrypt.compare(candidatePassword, hash, function(err, […]

更新Node.js护照用户

使用MongoDB的Node.js / Express应用程序,并使用Passport,Passport Local和Passport Local Mongoose。 我试图让我的网站的注册用户更新他们的个人资料。 我的想法是重新刷新registry单和逻辑,并通过PUT请求发送更新的数据到服务器。 注册使用Ajax来提交表单,虽然这工作正常,当我发送一个PUT请求来更新用户, req.body返回空,服务器抛出一个错误500。 更新表单标记和JavaScript几乎与注册相同,所以是因为我正在使用PUT请求? 我甚至不确定我是否以正确的方式去解决这个问题。 任何指针将非常高兴地收到! 编辑用户表单提交逻辑: $form.on('submit', function(e) { if ($form.hasClass('is-uploading')) return false; $form.addClass('is-uploading').removeClass('is-error'); if (isAdvancedUpload) { e.preventDefault(); var ajaxData = new FormData($form.get(0)); if (droppedFiles) { $.each(droppedFiles, function(i, file) { ajaxData.append($input.attr('name'), file); }); } $.ajax({ url: $form.attr('action'), type: $form.attr('method'), // data: ajaxData, dataType: 'json', cache: false, contentType: […]

Angular2,NodeJS和护照问题

目前,我的Angular2前端运行在localhost:3000上,NodeJS后端(基于KrakenJS)运行在localhost:8000 。 当我input证书时,我调用了this.http.post('http://localhost:8000/login', body, { headers: contentHeaders }) api,但是我在Chrome中得到以下响应: XMLHttpRequest cannot load http://localhost:8000/login. The request was redirected to 'http://localhost:8000/', which is disallowed for cross-origin requests that require preflight. 但是当我调用this.http.post('http://localhost:8000/register', body, { headers: contentHeaders })它一切正常,并执行所有的注册魔术(散列pswd,在数据库中存储细节。 。等等。)。 这是我从(register.js)的简单注册API: router.post('/', function (req, res) { if (req.body.email && req.body.password) { var User = require('../../models/user'); User.create({ name: req.body.name, email: req.body.email, […]