Я использую API для аутентификации пользователя и входа в систему, но я не знаю, как сохранить токен, возвращаемый сервером, для будущей аутентификации. Возвращаемый объект содержит токен.
import { Component, OnInit } from '@angular/core';
import {NgForm} from '@angular/forms';
import {ServerService} from '../server.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private req: ServerService) { }
token = 'no';
ngOnInit() {
}
onSubmit(form: NgForm) {
this.req.requestLogin({'email': form.value.email,
'password': form.value.password})
.subscribe(
(response) => this.token = response.token, // ERROR
(error) => console.info(error)
);
}
}
показана ошибка: Свойство «токен» не существует для типа «Объект».
Одна из проблем заключается в том, что ваш ServerService возвращает тип object
, поэтому он не ожидает существования свойства token
. Если вы указали тип возврата { token: string }
или эквивалентный тип, эта ошибка должна исчезнуть.
Пожалуйста, попробуйте следующий код.
import { Component, OnInit } from '@angular/core';
import {NgForm} from '@angular/forms';
import {ServerService} from '../server.service';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent implements OnInit {
constructor(private req: ServerService) { }
token = 'no';
ngOnInit() {
}
onSubmit(form: NgForm) {
this.req.requestLogin({'email': form.value.email,
'password': form.value.password})
.subscribe(
(response) => this.token = response['token'], // ERROR
(error) => console.info(error)
);
}
}
Изменить 1-
Only replace response.token by response['token']
Что выводит console.info (ответ)?