Я развертываю свое приложение node + express, которое использует проверку подлинности Windows. Для этого я выполнил документацию по Windows-auth PassportJS. Но я столкнулся с ошибкой =>
iisnode обнаружил ошибку при обработке запроса.
HRESULT: 0x2 Статус HTTP: 500 Подстатус HTTP: 1002 Причина HTTP: Внутренняя ошибка сервера Вы получаете этот ответ HTTP 200, потому что для параметра конфигурации system.webServer/iisnode/@devErrorsEnabled установлено значение «true».
Помимо журнала stdout и stderr процесса node.exe, рассмотрите возможность использования отладки и трассировки трассировки событий Windows для дальнейшей диагностики проблемы.
Последние 64 КБ вывода, сгенерированные процессом node.exe для stderr, показаны ниже:
Приложение вызвало неперехваченное исключение и завершено: Ошибка: стратегии аутентификации должны иметь имя в Passport.use (C: \ Workspace \ Trial \ node_modules \ паспорт \ lib \ паспорт \ index.js: 51: 20) в Object. (C: \ Workspace \ Trial \ server.js: 7: 10) в Module._compile (internal / modules / cjs / loader.js: 689: 30) в Object.Module._extensions..js (internal / modules / cjs /loader.js:700:10) в Module.load (internal / modules / cjs / loader.js: 599: 32) в tryModuleLoad (internal / modules / cjs / loader.js: 538: 12) в Function.Module. _load (internal / modules / cjs / loader.js: 530: 3) в Module.require (internal / modules / cjs / loader.js: 637: 17) в require (internal / modules / cjs / helpers.js: 22: 18) на Объекте. (C: \ Program Files (x86) \ iisnode \ interceptor.js: 210: 1)
server.js
<configuration>
<system.webServer>
<iisnode promoteServerVars="LOGON_USER" />
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="sendToNode">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
<system.web>
<authentication mode="Windows" />
</system.web>
</configuration>
web.config
var express = require('express');
var app = express();
var passport = require('passport');
var WindowsStrategy = require('passport-windowsauth');
passport.use(function(profile, done){
User.findOrCreate({ waId: profile.id }, function (err, user) {
done(err, user);
});
});
app.get('/NodeTrialLogon/', function (req, res) {
res.send('Express is workin on IISNode!');
});
app.get('/NodeTrialLogon/express-passport',
passport.authenticate('WindowsAuthentication'),
function (req, res){
res.json(req.user);
});
app.listen(process.env.PORT);
Пожалуйста помоги. Я включил проверку подлинности Windows в IIS и отключил все другие формы проверки подлинности.