web-dev-qa-db-ja.com

ユーザーとパスワードのポップアップを表示するようにexpress-basic-authを取得する方法

BasicAuthがノードのモジュールであったときに機能していたnode.jsアプリがあります。以下のコードは、アプリにアクセスしたときにパスワードとユーザー名のプロンプトをポップアップします。

// start the UI
var app = express();
app.use(express.basicAuth('me', 'openforme'));
app.use(kue.app);
app.listen(3001);

BasicAuthがモジュールとして削除されたので、ノードから、express-basic-authを使用しています。次のコードを使用すると、ユーザー名とパスワードのポップアップが表示されないため、401の不正なエラーが発生します。basicAuthのようなプロンプトですか?

// start the UI
var app = express();
var basicAuth = require('express-basic-auth');
app.use(basicAuth({
    users: { 'me': 'openforme' }
}));
app.use(kue.app);
app.listen(3001);
7
jdog

現在、express-basic-authからすぐに使用できるオプションがあります。 Challenge プロパティ。

app.use(basicAuth({
    challenge: true,
    users: { 'me': 'openforme' }
}));
15
Boyko Karadzhov

これはパーティーに非常に遅れていることは承知していますが、basic-auth そのようです:

const express = require('express')
const auth = require('basic-auth')
const app = express()

// Ensure this is before any other middleware or routes
app.use((req, res, next) => {
  let user = auth(req)

  if (user === undefined || user['name'] !== 'USERNAME' || user['pass'] !== 'PASSWORD') {
    res.statusCode = 401
    res.setHeader('WWW-Authenticate', 'Basic realm="Node"')
    res.end('Unauthorized')
  } else {
    next()
  }
})
3
Kieran E