У меня есть страница профиля, доступная только в том случае, если пользователь вошел в систему. Другими словами, если пользователь вызывает: localhost:9595/profile, тогда служба / компонент профиля проверяет сеанс и проверяет, вошел ли пользователь в систему или нет.
Если вы вошли в систему, я хочу получить его электронную почту из сеанса и предварительно заполнить поле ввода имени пользователя этим адресом электронной почты.
Моя проблема в том, как получить имя пользователя / адрес электронной почты из сеанса и предварительно заполнить им поле имени пользователя. Будет ли это сделано просто с сохранением сеанса и получением имени пользователя, как указано в этот вопрос и Вот этот, или в моем случае все будет иначе? Я немного смущен тем, что я получаю в качестве ответа от сервера:
{
"username": "b43d74a8-9de4-4b06-b9b0-52d88808ba59",
"universalId": "id=b43d74a8-9de4-4b06-b9b0-52d88808ba59,ou=user,o=cons,dc=org",
"latestAccessTime": "2018-03-13T07:10:33Z",
"maxIdleExpirationTime": "2018-03-13T07:40:33Z",
"maxSessionExpirationTime": "2018-03-13T09:10:32Z"
}
Извините, я не понимаю, что именно вы имели в виду, задавая свой вопрос. Не могли бы уточнить?
Мое имя пользователя - trichetriche. Здесь имя пользователя - b43d74a8-9de4-4b06-b9b0-52d88808ba59, а поля очень специфичны: universalId, maxSessionExpirationTime .... У меня вопрос: вы кодировали эти поля или используете библиотеку или фреймворк?
Имя пользователя (поле ввода в форме ui, которое передает электронное письмо на серверную часть) отправляется на серверную часть для входа в систему, и после этого пользователь перенаправляется на страницу профиля с сеансом. И то, что я разместил в своем вопросе, является ответом сервера - я не кодировал эти поля, а также не серверную часть для этого. Ни фреймворка, ни библиотеки. Для пользовательского интерфейса я использую Angular без какой-либо дополнительной библиотеки или пакета.
Можете ли вы просто изменить «сервер» (бэкэнд, API), чтобы включить / добавить атрибут этого пользователя в ответ?
К сожалению нет...





Будьте осторожны с кросс-доменом.
Вам нужно обработать: «Access-Control-Allow-Origin», «http: // локальный: 9595» - на стороне сервера.
Если вы справились с проблемой CROS, может помочь следующее решение:
// some logic before
if (userLoggedIn){
this.url = 'http://my-dummy-url.com';
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
options.withCredentials = true;
return this._http.get(this.url, options)
.map((response: Response) => {
const mJson = response.json();
console.info("the username we found is " + mJson.username);
});
}
// some logic after this...
Попробуйте добавить options.withCredentials = true; для включения межсайтового контроля доступа
Это очень странное и специфическое имя пользователя. Вы случайно не пользуетесь библиотекой?