Node-RED: v1.0.6
Node: v10.20.1
OS: Linux xxxxxxxx 3.10.0-514.10.2.el7.x86_64 # 1 SMP Thu Mar 2 11:35:29 PST 2017 x86_64 x86_64 x86_64 GNU / Linux
У меня есть изображение красного цвета узла, которое действует как бэкэнд одного из наших веб-приложений. Он хорошо работает на одном хосте, и я хочу развернуть его на другом хосте. Я сделал docker commit
, переместил изображение вместе с данными, присутствующими в томе (/ data dir), и приложение, похоже, работает хорошо. Все API-интерфейсы также хорошо работают с приложением. Единственная проблема, с которой я столкнулся, заключается в том, что я не могу войти в Node-RED на этом новом хосте.
Пользовательский интерфейс не отображает никаких ошибок на экране входа в систему. Он просто пытается войти в систему и возвращается к экрану входа в систему. Ошибок нет.
Я включил трассировку для отладки и вижу следующие ошибки в журнале.
11/07/2020 13:27:0611 Jul 07:57:06 - [audit] {"event":"auth.invalid-token","level":98,"timestamp":1594454226435}
11/07/2020 13:27:17Logged In **// This is a custom message from my custom login**
11/07/2020 13:27:1711 Jul 07:57:17 - [audit] {"event":"auth.login","username":"123456789","client":"node-red-editor","scope":"*","level":98,"timestamp":1594454237413}
Мой пользовательский логин печатает «вошел в систему», что означает, что вызов api для входа в систему flow работает хорошо и тоже аутентифицируется, но не входит в систему.
Я предполагаю, что NR пытается сохранить или, возможно, получить сеансы из хранилища и не может этого сделать.
I просмотрел проект NR github и обнаружил, что это сообщение регистрируется node-red/red/api/auth/strategies.js
.
var bearerStrategy = function (accessToken, done) {
// is this a valid token?
Tokens.get(accessToken).then(function(token) {
if (token) {
Users.get(token.user).then(function(user) {
if (user) {
done(null,user,{scope:token.scope});
} else {
**log.audit({event: "auth.invalid-token"});**
done(null,false);
}
});
} else {
log.audit({event: "auth.invalid-token"});
done(null,false);
}
});
}
Я JavaScript нуб и не уверен, как все это работает (хранение / получение токенов и т. д. c .)
Не могли бы вы намекнуть, может здесь что-то не так?