У меня есть этот простой компонент React для обработки аутентификации Active Directory:
import React from 'react';
import ActiveDirectory from 'activedirectory';
export default class ActiveDirectoryComponent extends React.Component {
state = {
authResponse: undefined
};
componentDidMount() {
var config = {
url: 'ldap://compandomain.com:389',
baseDN: 'dc=domainname,dc=com',
username: 'user',
password: 'pass'
};
var ad = new ActiveDirectory(config);
var username = 'john.smith@domain.com';
var password = 'password';
ad.authenticate(username, password, function (err, auth) {
if (err) {
this.setState({ authResponse: { error: JSON.stringify(err) } });
return;
}
if (auth) {
this.setState({ authResponse: auth });
} else {
console.log('Authentication failed!');
this.setState({ authResponse: { authFailed: true } });
}
});
}
render() {
if (!this.state.authResponse) {
return <div>Authenticating....</div>;
}
if (this.state.authResponse.error) {
return <div>{this.state.authResponse.error}</div>
}
if (this.state.authResponse.authFailed) {
return <div>Authentication Failed</div>
}
return <div>.....</div>
}
}
Когда я пытаюсь использовать этот компонент:
import ActiveDirectoryComponent from '../components/ActiveDirectoryAuthentication';
Мое приложение не загружается, и я получаю этоошибка в консоли:
Uncaught TypeError: unknown stream type "undefined"
at Logger.addStream (bunyan.js?a10b:620)
at eval (bunyan.js?a10b:470)
at Array.forEach (<anonymous>)
at new Logger (bunyan.js?a10b:469)
at Function.createLogger (bunyan.js?a10b:1618)
at Object.eval (activedirectory.js?f995:16)
at eval (990:1836)
at Object.<anonymous> (bundle.js:1)
at e (bundle.js:1)
at eval (index.js?048a:1)
Есть идеи, что нужно настроить для того, чтобы bunyan правильно имел поток?Это кажется мне проблемой в модуле 'activedirectory', так как я думаю, что он должен правильно создавать поток через bunyan.Но я не совсем уверен, так как я новичок в React.
Обновление (31.10.2008): модуль 'activedirectory' отлично работает в Javascript.Вышеуказанная проблема видна только в React.Мне пришлось написать отдельное приложение Javascript для взаимодействия с ActiveDirectory и использовать его из моего приложения React.Хотя это работает как обходной путь, было бы неплохо, если бы вышеуказанная проблема была исправлена, чтобы весь код был в React.