aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-04-11 21:13:15 +0800
committerGitHub <noreply@github.com>2019-04-11 21:13:15 +0800
commit8c5e7069d2651fb6fae641dfe482d7a0910b3fd1 (patch)
tree49dc35791778a4ed1403319708046ac8823210b6 /Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
parent1eb6d9abfc24eec380b7b5d7423102a53041239e (diff)
parentf562660f52ce055e243b937a988f04c90ad3ae55 (diff)
downloadtimeline-8c5e7069d2651fb6fae641dfe482d7a0910b3fd1.tar.gz
timeline-8c5e7069d2651fb6fae641dfe482d7a0910b3fd1.tar.bz2
timeline-8c5e7069d2651fb6fae641dfe482d7a0910b3fd1.zip
Merge pull request #19 from crupest/18-createtoken
Change create token api.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts')
-rw-r--r--Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts29
1 files changed, 18 insertions, 11 deletions
diff --git a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
index 6de355f2..66eafde9 100644
--- a/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
+++ b/Timeline/ClientApp/src/app/user/internal-user-service/internal-user.service.ts
@@ -5,7 +5,7 @@ import { Router } from '@angular/router';
import { Observable, throwError, BehaviorSubject, of } from 'rxjs';
import { map, catchError, retry, switchMap, tap, filter } from 'rxjs/operators';
-import { AlreadyLoginError, BadCredentialsError, BadNetworkError, UnknownError } from './errors';
+import { AlreadyLoginError, BadCredentialsError, BadNetworkError, UnknownError, ServerInternalError } from './errors';
import {
createTokenUrl, validateTokenUrl, CreateTokenRequest,
CreateTokenResponse, ValidateTokenRequest, ValidateTokenResponse
@@ -84,7 +84,7 @@ export class InternalUserService {
if (userInfo) {
return of(userInfo);
} else {
- return throwError(new Error('Wrong server response. IsValid is true but UserInfo is null.'));
+ return throwError(new ServerInternalError('IsValid is true but UserInfo is null.'));
}
} else {
return of(null);
@@ -117,21 +117,28 @@ export class InternalUserService {
if (error.error instanceof ErrorEvent) {
console.error('An error occurred when login: ' + error.error.message);
return throwError(new BadNetworkError());
- } else if (error.status === 400) {
- console.error('An error occurred when login: wrong credentials.');
- return throwError(new BadCredentialsError());
} else {
console.error('An unknown error occurred when login: ' + error);
return throwError(new UnknownError(error));
}
}),
- map(result => {
- this.token = result.token;
- if (info.rememberMe) {
- this.window.localStorage.setItem(TOKEN_STORAGE_KEY, result.token);
+ switchMap(result => {
+ if (result.success) {
+ if (result.token && result.userInfo) {
+ this.token = result.token;
+ if (info.rememberMe) {
+ this.window.localStorage.setItem(TOKEN_STORAGE_KEY, result.token);
+ }
+ this.userInfoSubject.next(result.userInfo);
+ return of(result.userInfo);
+ } else {
+ console.error('An error occurred when login: server return wrong data.');
+ return throwError(new ServerInternalError('Token or userInfo is null.'));
+ }
+ } else {
+ console.error('An error occurred when login: wrong credentials.');
+ return throwError(new BadCredentialsError());
}
- this.userInfoSubject.next(result.userInfo);
- return result.userInfo;
})
);
}