如何使用 node.js 对外部网络应用程序的用户进行身份验证?
How to authenticate users for a external webapp with node.js?
我有一个 node.js 快递网站,我在其中使用 jwt 令牌对我的用户进行身份验证。我想在我的管理界面中包含外部网络应用程序,即 agendash。
Agendash 包含在这样的快速中间件中:
const agenda = new Agenda({db: {address: config.get("DBUrl")}})
app.use('/agenda', Agendash(agenda));
我的计划是使用 iframe 并添加身份验证中间件功能,我在其中检查用户是否是管理员,然后将身份验证令牌添加到来自前端的每个请求。但是好像没有办法做到这一点。
有没有办法在不更改 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 快递网站,我在其中使用 jwt 令牌对我的用户进行身份验证。我想在我的管理界面中包含外部网络应用程序,即 agendash。
Agendash 包含在这样的快速中间件中:
const agenda = new Agenda({db: {address: config.get("DBUrl")}})
app.use('/agenda', Agendash(agenda));
我的计划是使用 iframe 并添加身份验证中间件功能,我在其中检查用户是否是管理员,然后将身份验证令牌添加到来自前端的每个请求。但是好像没有办法做到这一点。
有没有办法在不更改 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