Tag: 护照本地

Mongoose schematype.castForQuery错误。 用户身份validation失败

我使用护照战略使用本地护照使用节点js和mongoose时遇到问题。 有时(并不总是),它显示以下错误,我无法弄清楚,我无法login到系统。 我已经使用angularJS的客户端。 TypeError: schematype.castForQuery is not a function at cast (/Users/Harry/Desktop/socketio/node_modules/mongoose/lib/cast.js:229:32) at Query.cast (/Users/Harry/Desktop/socketio/node_modules/mongoose/lib/query.js:2753:12) at Query.findOne (/Users/Harry/Desktop/socketio/node_modules/mongoose/lib/query.js:1353:10) at Function.findOne (/Users/Harry/Desktop/socketio/node_modules/mongoose/lib/model.js:1343:13) at Strategy._verify (/Users/Harry/Desktop/socketio/app_api/config/passport.js:17:8) at Strategy.authenticate (/Users/Harry/Desktop/socketio/node_modules/passport-local/lib/strategy.js:90:12) at attempt (/Users/Harry/Desktop/socketio/node_modules/passport/lib/middleware/authenticate.js:348:16) at authenticate (/Users/Harry/Desktop/socketio/node_modules/passport/lib/middleware/authenticate.js:349:7) at module.exports.login (/Users/Harry/Desktop/socketio/app_api/controllers/authentication.js:302:4) at Layer.handle [as handle_request] (/Users/Harry/Desktop/socketio/node_modules/express/lib/router/layer.js:95:5) at next (/Users/Harry/Desktop/socketio/node_modules/express/lib/router/route.js:131:13) at Route.dispatch (/Users/Harry/Desktop/socketio/node_modules/express/lib/router/route.js:112:3) at Layer.handle [as handle_request] (/Users/Harry/Desktop/socketio/node_modules/express/lib/router/layer.js:95:5) at /Users/Harry/Desktop/socketio/node_modules/express/lib/router/index.js:277:22 at […]

如何允许+护照本地策略的用户字符?

我正在使用电子邮件地址的passport-local策略。 这导致与通用加部分的gmail地址的问题,例如。 example+test@gmail.com 。 运用 import passport from 'passport'; import passportLocal from 'passport-local'; import bcrypt from 'bcrypt'; var LocalStrategy = passportLocal.Strategy; passport.use(new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField: 'email', passwordField: 'password', passReqToCallback: true }, function (req, email, pass, cb) { // Store hash in your […]

无法发布来自Ionic应用程序的HTTP请求

我正尝试login到本地托pipe的应用程序(现在)使用ionic framework。 这是我login的nodejs后端代码,这是为web应用程序的意思,但现在我也为android platfrom // process the login form app.post('/login', passport.authenticate('local-login', { successRedirect: '/profile', // redirect to the secure profile section failureRedirect: '/login', // redirect back to the signup page if there is an error failureFlash: true // allow flash messages })); HTML代码在离子 <ion-item> <ion-input type="text" placeholder="Email" name="email" [(ngModel)]="email"></ion-input> </ion-item> <ion-item> <ion-input type="password" placeholder="Password" name="password" […]

为什么我的POST请求保持无限加载?

我试图build立一个node.js应用程序,当我试图做一个寄存器或login方法的发布请求,似乎继续加载,而不是做任何事情。 我的网页浏览器中出现以下错误 – “本地主机没有发送任何数据”。 这是我有我的代码设置的方式: var express = require("express"), app = express(), bodyParser = require("body-parser"), mongoose = require("mongoose"), passport = require("passport"), flash = require("connect-flash"), LocalStrategy = require("passport-local"), methodOverride = require("method-override"), User = require("./models/user"); mongoose.connect("mongod://localhost/supportApp_v1"); app.use(bodyParser.urlencoded({extended:true})); app.set("view engine", "ejs"); app.use(express.static(__dirname + "/public")); app.use(methodOverride("_method")); app.use(flash()); app.use(require("express-session")({ secret: "luck", resave: false, saveUninitialized: false })); app.use(passport.initialize()); app.use(passport.session()); passport.use(new LocalStrategy(User.authenticate())); […]

Express路由器创build一个不需要的新会话

我正在使用express和passport-local作为基于本教程的authentication部分的反应项目: https : //scotch.io/tutorials/easy-node-authentication-setup-and-local validation工作得很好,我添加了快速路由器来为我的api定义我的路由,但是当我打电话给例如“/ api / myroute”时,express的路由器创build了另一个会话,我失去了用户,所以我的function是isLoggedIn块我的控制器的调用,因为在这个新的会话中没有用户。 所以我的问题是:为什么路由器重新创build一个会话? 什么是我的configuration错了? 这是我的代码: //server.js var path = require('path'); var webpack = require('webpack'); var webpackDevMiddleware = require('webpack-dev-middleware'); var webpackHotMiddleware = require('webpack-hot-middleware'); var config = require('./webpack.config'); var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var […]

Nodejs Passportvalidationcallback没有被错误地调用

我看过类似的问题,但我找不到正确的答案。 我试图用nodejs + express +护照(本地策略)实现一个非常简单的login表单。 事情是,我的身份validationcallback似乎总是失败。 我已经删除了testing数据库的每个连接(每个教程都有一个示例MongoDB)。 这是我的login表单 <html> <body> <form action="/login" method="post"> <div> <label>Username:</label> <input type="text" name="username" /> <br/> </div> <div> <label>Password:</label> <input type="password" name="password" /> </div> <div> <input type="submit" value="Submit" /> </div> </form> </body> </html> 这是我的server.js(我运行npm启动) var express = require('express'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var app = express(); var […]

与Mysql的本地令牌的Nodejs Passport

我希望用户能够以令牌开始会话。 无需input密码。 我正在使用护照本地令牌 https://www.npmjs.com/package/passport-local-token 但似乎这将与Mongodb合作。 任何想法?

Passport.js策略,不需要字段

我很惊讶,很难find,或者可能是我的错。 我需要一个不需要字段的passport.js strategy – 通过简单的用户GET请求来运行身份validation,然后操作用户会话数据,例如创build一个新的“访客”用户。 也许我可以通过护照local-strategy做到这一点? 或者我需要创build一个自定义的? 我看到这个configuration护照接受请求没有身体? 问题,但我只是无法弄清楚如何在答案包装build议会改变任何东西。 编辑:这是我想要实现的 passport.use('guest', new LocalStrategy({ passReqToCallback: true }, function (req, NOusername, NOpassword, done) { ////NO PASSWORD OR USERNAME checks here, just deciding what kind of temporary user needs to be created/// if (req.session.passport) { ///create new user with previous session data done(null,user) } else { ///create clean […]

如何使用护照和快递显示自定义错误消息

我在注册用户时检查电子邮件是否已经存在。 如果用户已经存在,我会传递错误消息“email already exists”。 但在前端显示“未经授权”错误401.我想通过从后端传递到前端的错误消息,但它通过默认消息。 下面是我如何检查用户是否已经存在并发送错误信息, exports.register = new LocalStrategy({ usernameField: 'email', passReqToCallback: true }, function(req, email, password, done,res) { var newUser = new User({ email: email, password: password, name: req.body.fname }); var searchUser = { email: email }; User.findOne(searchUser, function(err, user) { if (err) return done(err); console.log("err "+err); if (user) { return done(null, false, […]

passport.initialize()中间件不用于Express 4.10自定义callback

任何人都可以帮助我这个。 我不断收到Error: passport.initialize() middleware not in use当我尝试连接到数据库中的用户Error: passport.initialize() middleware not in use 。 exception情况下工作得很好(不正确的密码/用户名未find)。 这是设置: 我正在使用的版本 // version node –version v0.10.33 express@4.10.2 passport@0.2.1 passport-local@1.0.0 server.js代码在这里 // server.js 'use strict'; var express = require('express'); var bodyParser = require('body-parser'); var session = require('express-session'); var passport = require('passport'); var flash = require('connect-flash'); var cookieParser = require('cookie-parser'); //Our custom […]