У меня проблема с AngularJS; Я захожу в форму, поэтому хочу сохранить данные ответов для сохранения сеанса пользователя: когда я открываю другую вкладку, тот же пользователь должен войти в систему.
Это моя функция loginController:
function doLoginFn() {
/*console.log("doLoginFn");
var requiresLogin = $state.jwtToken;
console.log("requireLogin: " + requiresLogin);*/
console.log("authRequest: " + ctrl.authRequest);
AuthFactory.sendLogin(ctrl.authRequest, successCB, errorCB);
function successCB(response) {
let authInfo = response.data;
let header = response.headers();
authInfo.jwtToken = header['authorization'];
console.log("authInfo", authInfo);
// AuthFactory.user.username = authInfo.username;
// AuthFactory.user.role = authInfo.role;
let debugJWT = true;
//if (debugJWT) {
if (true) {
console.log(authInfo);
console.log("username: " + authInfo.username);
console.log("roles: " + JSON.stringify(authInfo.authorities.authority));
console.log("jwtToken: " + authInfo.jwtToken);
console.log("userType: " + authInfo.userRole);
console.log("ended.");
}
localStorage.setItem("response",JSON.stringify(response));
AuthFactory.setJWTAuthInfo(authInfo);
$state.go("dashboard.home");
}
и это метод authFactory:
function setJWTAuthInfoFn(authInfo) {
$sessionStorage.put('authInfo', authInfo);
authManager.authenticate();
authInfo.authorities.forEach(function (a) {
AclService.attachRole(a.authority);
})
}
Итак, я попытался сохранить в локальном хранилище ответ, чтобы получить все данные.
Когда я загружаю контроллер, я пытаюсь сделать это:
let response = localStorage.getItem("response");
if(response !== null && response !== undefined){
console.log("response" + response);
console.log("response " + JSON.stringify(response));
let authInfo = response.data;
console.log("authInfo " + JSON.stringify(authInfo));
let debugJWT = true;
AuthFactory.retrieveJWTAuthInfo(authInfo);
$state.go("dashboard.home");
}
В консоли я вижу значение ответа следующим образом:
ответ {"данные": {"имя пользователя": "администратор", "полномочия": [{"полномочия": "ROLE_ADMIN"} и т. Д.
но я получаю:
authInfo undefined
Как я могу сохранить все поля объекта в AngularJS? Потому что после authFactory у меня слишком много подфункций, которые используют подполя моего объекта, поэтому слишком долго приходится вручную сохранять все данные ..