Привет Я создал общий сервис, из которого я могу создавать объекты с помощью общих HTTP-запросов.Настройка заголовков (токенов) нескольких объектов после аутентификации пользователя в Angular2
Проблема я столкнулся сейчас перейти к каждому созданному объекту маркер в их заголовках, если проверка подлинности пользователя (я получит фишку как ответ, который хранится в LocalStorage)
Так в основном Я могу создать эти пользовательские объекты HTTP в любом месте (по компонентам путем инъекции) на любом уровне. У всех из них еще нет набора заголовков проверки подлинности. Как только пользователь будет аутентифицирован, все эти объекты будут иметь свой заголовок проверки подлинности.
Вот plunker
export class App {
myHttpObject1;
constructor(private myAuth:MyAuth, private myDatabase:MyDatabase) {
this.name = 'Angular2 (Release Candidate!)'
this.myHttpObject1 = this.myDatabase.httpSchema('users')
this.myHttpObject1.log()
// this.myHttpObject1.someOtherMethodes()...
}
login(){
this.myAuth.login()
}
showHeaders(){
this.myHttpObject1.log()
}
}
Ниже службы и один издеваться логин.
@Injectable()
export class MyDatabase{
private base_url:string;
private headers :Headers;
constructor(){
this.base_url = 'https://jsonplaceholder.typicode.com/';
this.headers = new Headers();
this.headers.append('Content-Type', 'application/json');
this.headers.append('Authorization','');
}
public httpSchema(path:string){
return new MyHttpObject(path, this.headers || new Headers())
}
}
class MyHttpObject{
constructor(public url:string, public headers:Headers){
}
log(){
console.log(this.url)
console.log(this.headers)
}
post(){
console.log('here could be a http post')
}
}
@Injectable()
export class MyAuth{
login(){
setTimeout(()=>{
console.log('logged In');
localStorage.setItem('token':'mytoken');
},2000)
}
}
привет, Джон, не могли бы вы немного подробнее? Или добавить ссылку? Благодаря! –
Я сказал инжектор, его перехватчик. Это позволяет перехватить HTTP-запрос до его отправки, чтобы изменить заголовки. Он будет делать это для каждого HTTP-запроса .... https: //www.illucit.com/blog/2016/03/angular2-http-authentication-interceptor/ –