From fc4299fed7fc85a6ce1d98800d6857a3b90692c8 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 05 Feb 2018 08:53:19 +0800
Subject: [PATCH] 优化登录失败处理
---
src/app/routes/passport/login/login.component.ts | 53 +++++++++++++++++++++++++++++++++--------------------
1 files changed, 33 insertions(+), 20 deletions(-)
diff --git a/src/app/routes/passport/login/login.component.ts b/src/app/routes/passport/login/login.component.ts
index 678152b..c55479e 100644
--- a/src/app/routes/passport/login/login.component.ts
+++ b/src/app/routes/passport/login/login.component.ts
@@ -1,3 +1,5 @@
+import { Authorization } from '@business/entity/token';
+import { LoginService } from './../../../business/services/http/login.service';
import { SettingsService } from '@delon/theme';
import { Component, OnDestroy, Inject } from '@angular/core';
import { Router } from '@angular/router';
@@ -5,12 +7,11 @@
import { NzMessageService } from 'ng-zorro-antd';
import { SocialService, SocialOpenType, ITokenService, DA_SERVICE_TOKEN } from '@delon/auth';
import { environment } from '@env/environment';
-
@Component({
selector: 'passport-login',
templateUrl: './login.component.html',
styleUrls: [ './login.component.less' ],
- providers: [ SocialService ]
+ providers: [ SocialService]
})
export class UserLoginComponent implements OnDestroy {
@@ -25,6 +26,7 @@
public msg: NzMessageService,
private settingsService: SettingsService,
private socialService: SocialService,
+ private loginService:LoginService,
@Inject(DA_SERVICE_TOKEN) private tokenService: ITokenService) {
this.form = fb.group({
userName: [null, [Validators.required, Validators.minLength(5)]],
@@ -75,28 +77,39 @@
this.captcha.markAsDirty();
if (this.mobile.invalid || this.captcha.invalid) return;
}
- // mock http
this.loading = true;
- setTimeout(() => {
- this.loading = false;
- if (this.type === 0) {
- if (this.userName.value !== 'admin' || this.password.value !== '123456') {
- this.error = `���������������������`;
- return;
+ this.loginService.validate(this.userName.value,this.password.value).subscribe(
+ (res:Authorization) => {
+ if(res.token!=null){
+ this.tokenService.set({
+ token: res.token,
+ name: this.userName.value,
+ time: +new Date
+ });
+ this.validateError = true;
+ 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 = true;
+ this.loading = false;
+ }
+ }
+ }
}
- }
+ );
- this.tokenService.set({
- token: '123456789',
- name: this.userName.value,
- email: `cipchk@qq.com`,
- id: 10000,
- time: +new Date
- });
- this.router.navigate(['/']);
- }, 1000);
}
-
+ public validateError:boolean;
// region: social
open(type: string, openType: SocialOpenType = 'href') {
--
Gitblit v1.8.0