From 50223d066f7bb4446e47467463783b7f0170f889 Mon Sep 17 00:00:00 2001 From: fengxiang <110431245@qq.com> Date: Wed, 06 Jun 2018 13:59:30 +0800 Subject: [PATCH] 登录失效拦截完善 --- src/app/routes/passport/login/login.component.ts | 51 +++++++++++++++++++++++++++------------------------ 1 files changed, 27 insertions(+), 24 deletions(-) diff --git a/src/app/routes/passport/login/login.component.ts b/src/app/routes/passport/login/login.component.ts index c84c2a5..f0ee060 100644 --- a/src/app/routes/passport/login/login.component.ts +++ b/src/app/routes/passport/login/login.component.ts @@ -1,3 +1,5 @@ +import { error } from 'selenium-webdriver'; +import { HttpErrorResponse } from '@angular/common/http'; import { Authorization } from '@business/entity/token'; import { LoginService } from '@business/services/http/login.service'; import { SettingsService } from '@delon/theme'; @@ -9,11 +11,12 @@ import { ReuseTabService } from '@delon/abc'; import { environment } from '@env/environment'; import { CookieService } from 'angular2-cookie/services/cookies.service'; +import { debounce } from 'rxjs/operators'; @Component({ selector: 'passport-login', templateUrl: './login.component.html', styleUrls: [ './login.component.less' ], - providers: [ SocialService,CookieService] + providers: [ SocialService, CookieService] }) export class UserLoginComponent implements OnDestroy { @@ -29,7 +32,7 @@ private settingsService: SettingsService, private socialService: SocialService, @Optional() @Inject(ReuseTabService) private reuseTabService: ReuseTabService, - private loginService:LoginService, + private loginService: LoginService, @Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) { this.form = fb.group({ userName: [null, [Validators.required, Validators.minLength(5)]], @@ -83,9 +86,12 @@ if (this.mobile.invalid || this.captcha.invalid) return; } this.loading = true; - this.loginService.validate(this.userName.value,this.password.value).subscribe( - (res:Authorization) => { - if(res.token!=null){ + this.loginService.validate(this.userName.value, this.password.value).subscribe( + (res: Authorization) => { + this.validateError['password_incorrect'] = false; + this.validateError['account_expired'] = false; + this.validateError['server_offline'] = false; + if (res.token != null) { // ������������������������ this.reuseTabService.clear(); this.tokenService.set({ @@ -97,29 +103,26 @@ this.router.navigate(['/']); } }, - (err) => { - // console.log(err); - if(err instanceof ProgressEvent){ - const error = <ProgressEvent>err; - let xmlHttp = error.target; - if(xmlHttp instanceof XMLHttpRequest){ - const xmlHttpRequest = <XMLHttpRequest> xmlHttp; - console.log(xmlHttpRequest.response); - const response = JSON.parse(xmlHttpRequest.response); - if(response.status == 401&&response.errorCode==10){ - this.validateError["password_incorrect"]=true; - this.loading = false; - } else if(response.status == 401&&response.errorCode==12) { - this.validateError["account_expired"]=true; - this.loading = false; - } - } - } + (err: HttpErrorResponse) => { + if (!!err) { + const errMsg = err.error; + console.log(errMsg); + if (errMsg.status === 401 && errMsg.errorCode === 10) { + this.validateError['password_incorrect'] = true; + this.loading = false; + } else if (errMsg.status === 401 && errMsg.errorCode === 12) { + this.validateError['account_expired'] = true; + this.loading = false; + } else if (!errMsg.status && !errMsg.errorCode) { + this.validateError['server_offline'] = true; + this.loading = false; + } + } } ); } - public validateError:{[s:string]:boolean} = {}; + public validateError: {[s: string]: boolean} = {}; // region: social open(type: string, openType: SocialOpenType = 'href') { -- Gitblit v1.8.0