node.js - 如何使用 node.js 对外部 webapp 的用户进行身份验证?

标签 node.js express authentication jwt agenda

我有一个 node.js express 网站,我在其中使用 jwt token 对我的用户进行身份验证。我想包括外部网络应用程序,即 agendash进入我的管理界面。

Agendash 包含在这样的 express 中间件中:

const agenda = new Agenda({db: {address: config.get("DBUrl")}})
app.use('/agenda', Agendash(agenda));

我的计划是使用 iframe 并添加身份验证中间件功能,我会在其中检查用户是否是管理员,然后将身份验证 token 添加到来自前端的每个请求。但似乎没有办法做到这一点。

有没有办法在不更改 agendash 代码的情况下让这条路线只对我的管理员用户可用?

最佳答案

您可以使用 express-basic-auth

只需将它作为中间件添加到您的 agendash 路由中

var express = require('express');
var app = express();
var basicAuth = require('express-basic-auth')

// ... your other express middleware like body-parser

var Agenda = require('agenda');
var Agendash = require('agendash');

var agenda = new Agenda({ db: { address: 'mongodb://127.0.0.1/agendaDb' } });
// or provide your own mongo client:
// var agenda = new Agenda({mongo: myMongoClient})

app.use('/dash', 
  basicAuth({
    users: {
      admin: "super-secure-password",
    },
    challenge: true,
  }),
  Agendash(agenda));

// ... your other routes

// ... start your server

关于node.js - 如何使用 node.js 对外部 webapp 的用户进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49982601/

相关文章:

PHP if-else 总是在 mysql_num_rows 等于 1 之后显示 else

git - OpenShift : Unable to log in using rhc on Windows 7

node.js - 海外安装 NPM 超时

node.js - Visual Studio for Mac上的Docker构建错误-当前上下文中没有构建阶段

node.js - 运行下面的服务器后。我使用 postman 邮寄正文,但为什么不起作用?

java - 管理身份验证 token 的最佳实践

angularjs - Angular 1.6.9 和 socket.io 聊天应用程序

node.js - 当我尝试在 Node 中执行 https post 请求时,出现 getaddrinfo ENOTFOUND 错误

node.js - expressjs的API中如何识别不同平台

javascript - 如何使用 typeorm 实体在 mysql 中使用现有表?