it('should login and save the user', fakeAsync(() => {
const fakeCredentials = { username: 'foo', password: 'bar' };
const fakeResponse = { username: 'foo', token: 'tokenbytes' };
- service.login(<any>fakeCredentials);
+ service.login(fakeCredentials).subscribe();
const req = httpTesting.expectOne('api/auth');
expect(req.request.method).toBe('POST');
expect(req.request.body).toEqual(fakeCredentials);
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
+import { Observable } from 'rxjs';
+import { tap } from 'rxjs/operators';
+
import { Credentials } from '../models/credentials';
import { LoginResponse } from '../models/login-response';
import { AuthStorageService } from '../services/auth-storage.service';
return this.http.post('api/auth/check', { token: token });
}
- login(credentials: Credentials) {
- return this.http
- .post('api/auth', credentials)
- .toPromise()
- .then((resp: LoginResponse) => {
+ login(credentials: Credentials): Observable<LoginResponse> {
+ return this.http.post('api/auth', credentials).pipe(
+ tap((resp: LoginResponse) => {
this.authStorageService.set(resp.username, resp.token, resp.permissions, resp.sso);
- });
+ })
+ );
}
logout(callback: Function = null) {