标签: passport-local

浏览器后退按钮不会破坏PassportJS + ExpressJS中的会话.如何完全终止/终止会话?

我的登出机制的代码是

app.get('/logout', isLoggedIn, function(req, res) {
        req.logout();
        res.redirect('/');
    });
Run Code Online (Sandbox Code Playgroud)

使用密钥的Express会话包,没有在任何地方设置Cookies.

当我在注销后单击浏览器后退按钮时,它仍允许用户返回正在进行身份验证的页面.如何完全终止此会话?

isLoggedIn只是通过PassportJS的isAuthenticated方法进行身份验证.这是什么方式?

请帮忙.提前致谢.

编辑:这是会话ID

在此输入图像描述

javascript node.js express passport-local passport.js

1
推荐指数
1
解决办法
2119
查看次数

如何在Passport.js中定义多个isAuthenticated函数?

我正在使用Express/Node.js和Passport.js(本地护照)和Mongoose构建应用程序.

有两种用户:

  1. 普通用户(他们使用/user-login页面和护照策略登录'local-user-login';常规用户存储在"用户"MongoDB集合中)
  2. 管理员(他们使用/admin-login页面和护照策略登录'local-admin-login';管理员存储在"Admins"MongoDB集合中)

我还有2个页面:(只/user_home需要记录的普通用户可以访问)和/admin_home(仅限登录的管理员)

路线/user_home:

app.get('/user_home', isLoggedIn, function(req, res) {
    // render the page
});

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated())
        return next();
    res.redirect('/login');
}
Run Code Online (Sandbox Code Playgroud)

如果我以管理员身份登录并尝试访问/user_home,则不允许我这样做,这很好.我的问题是:如何定义另一个" isLoggedIn"函数来检查我是以管理员而不是普通用户身份登录的?理想情况下,我希望有一个函数"isLoggedInAsUser",另一个函数是"isLoggedInAsAdmin".

到目前为止,我尝试/admin_home 以相同的方式定义路线:

app.get('/admin_home', isLoggedIn, function(req, res) {
    // render the page
});
Run Code Online (Sandbox Code Playgroud)

但很明显为什么它不起作用.代码不知道我希望它检查它是否是管理员而不是普通用户.

mongoose node.js express passport-local passport.js

1
推荐指数
1
解决办法
1528
查看次数

Passport for Facebook和Google的所有可能的范围选项

我无法在facebook和google的护照中找到所有可能的范围选项.任何人都可以提到我们在Facebook和谷歌认证期间可以传递的所有可能的范围选项/值吗?

我需要使用facebook和google的其他范围选项,就像我目前使用'email'范围值一样.请分别提及facebook和google的所有可能的范围选项.

passport.authenticate(key, {scope: ['email']})(req, res, next);
Run Code Online (Sandbox Code Playgroud)

node.js passport-facebook passport-local passport.js passport-google-oauth2

1
推荐指数
1
解决办法
1924
查看次数

Passportjs 本地策略缺少凭据错误消息

我正在尝试使用带有本地护照策略的passportjs 在node.js 应用程序中实现身份验证。我仔细阅读了文档并使用了文档中建议的所有内容。但我每次都收到“缺少凭据”的消息。

Node.js 文件:

var http = require('http');
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var passport = require('passport');
var localStrategy = require('passport-local').Strategy;

var app = express();
app.set('port', process.env.PORT || 3000);

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(express.static(path.join(__dirname, 'public')));
app.use(cookieParser());
app.use(require('body-parser').urlencoded({
    extended: true
}));
app.use(require('express-session')({
    secret: …
Run Code Online (Sandbox Code Playgroud)

authentication node.js express passport-local passport.js

0
推荐指数
1
解决办法
3061
查看次数

使用护照本地猫鼬的错误请求

我正在尝试使用passport、mongodb、mongoose、express 和passport-local-mongoose 插件对小型webapp 进行身份验证。我bad request在尝试登录用户时被退回。我能够注册用户并将数据导入数据库。

我如何继续使用错误处理进行调试?护照和护照本地猫鼬的文档似乎很简单(我有点菜鸟)。

应用程序.js

app.use(passport.initialize())
app.use(passport.session())

app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);

var User = require('./models/user.js')
passport.use(new LocalStrategy(User.authenticate()));

//passport.use(new LocalStrategy(UserSchema.authenticate()))
// use static serialize and deserialize of model for passport session support
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());

// Connect to Mongoose
mongoose.connect('mongodb://localhost/users')
Run Code Online (Sandbox Code Playgroud)

注册路由(获取数据到数据库,但重定向失败)

// Register a user to the DB
router.post('/register', function(req, res, next){
  let firstName = req.body.firstName
  let lastName = req.body.lastName
  let username = req.body.email
  //let password = req.body.password
  let homeAirport = req.body.homeAirport

  User.register(new User ({
    firstName: firstName,
    lastName: …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js passport-local passport.js

0
推荐指数
1
解决办法
1946
查看次数

node.js上的护照模块 - 参考错误:未定义LocalStrategy

当我尝试运行我的代码时,它给出了参考错误:未定义LocalStrategy.

这是我第一次使用node.js而且我用这个打了一堵墙.我提前感谢你的帮助.

我将所有代码放在一个代码段中,以便您轻松完成.我已经尝试了其他帖子进行修复,但都没有成功.

/***********
   Modules
***********/

//Load the express library
var express = require('express');
//Create a new variable called “app”; we pass on the express() method.
var app = express();
//Set Port
var port = 7878;
var mongoose = require('mongoose'); //Place this on top; Loads mongoose library
var bodyParser = require('body-parser');
var passport = require('passport');
var LocalStratgy = require('passport-local').Strategy;

/*Body parser*///whenever you do a post request from the form, it gets the data through a URL encoded format.
app.use(bodyParser.urlencoded({
    extended: …
Run Code Online (Sandbox Code Playgroud)

javascript node.js passport-local passport.js

0
推荐指数
1
解决办法
1620
查看次数

在nodejs中使用sequelize和passport登录

我正在创建一个具有用户身份验证的自持续聊天应用程序项目。以下代码能够成功注册(添加新用户)。但是,以前注册的用户不会登录。示例:输入用户名 foo 和密码 foopass 后,终端内会发生以下情况

 Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER auto_increment , `email` VARCHAR(255) NOT NULL DEFAULT 'abhinav@gmail.com' UNIQUE, `username` VARCHAR(255) NOT NULL UNIQUE, `password` VARCHAR(255) NOT NULL, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;
Executing (default): SHOW INDEX FROM `users`
Database is ready
Executing (default): SELECT `id`, `email`, `username`, `password`, `createdAt`, `updatedAt` FROM `users` AS `users` WHERE `users`.`username` = 'foo' LIMIT 1;
Run Code Online (Sandbox Code Playgroud)

以下是我的js文件

1.服务器端.js

const express = require('express')
const …
Run Code Online (Sandbox Code Playgroud)

javascript node.js sequelize.js passport-local passport.js

0
推荐指数
1
解决办法
8875
查看次数

Nestjs returns 401 (Unauthorized) even with valid user ft. passport-local

Hi awesome developers,

I'm trying to implement Authentication using passport-local and Nestjs with reference to https://progressivecoder.com/how-to-implement-nestjs-passport-authentication-using-local-strategy/.

I have implemented exactly same but Nestjs always returns 401 Unauthorized even with valid user. I can't seem to find what I am missing.

Code Structure

Authentication Module
User Module

Here's the code:

Authentication Module:

authentication.module.ts

import { Module } from '@nestjs/common';
import { PassportModule } from '@nestjs/passport';
import { UserModule } from 'src/user/user.module';
import { AuthenticationController } from './controllers/authentication.controller';
import { AuthenticationService …
Run Code Online (Sandbox Code Playgroud)

passport-local passport.js nestjs

0
推荐指数
1
解决办法
1113
查看次数