Как аутентифицировать пользователей для внешнего веб-приложения с помощью node.js?

У меня есть node.js, экспресс-сайт, где я аутентифицирую своих пользователей с помощью токена jwt. Я хочу включить внешние веб-приложения, а именно agendash в мой интерфейс администратора.

Agendash входит в состав промежуточного программного обеспечения Express:

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

Мой план состоял в том, чтобы использовать iframe и добавить функцию промежуточного ПО аутентификации, где я проверяю, является ли пользователь администратором, а затем добавляю токен аутентификации в каждый запрос от внешнего интерфейса. Но, похоже, нет способа сделать это.

Есть ли способ сделать этот маршрут доступным только для моих пользователей-администраторов без изменения кода повестки дня?

0 ответов

Вы можете сделать это с помощью express-basic-auth

Просто добавьте его в качестве промежуточного программного обеспечения в свой маршрут повестки дня

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

Другие вопросы по тегам