在应用程序中始终保持登录状态,当我关闭应用程序时,使用Nativescript中的Http重新启动,关闭移动设备等。

时间:2018-07-03 08:29:02

标签: angular typescript login nativescript stay-logged-in

仅当我单击要从系统断开连接时,我才想继续登录我的应用程序。

有什么想法吗?

对于登录系统,我使用以下代码:

export class LoginComponent implements OnInit {
    LoginForm: FormGroup;
    loading: boolean = false;
    constructor(private formBuilder: FormBuilder, private loginservice: LoginService, private router: Router) {
        this.LoginForm = this.formBuilder.group({
            username: ["", Validators.required],
            password: ["", Validators.required]
        });
    }
    public ngOnInit() {
    }

    login() {
            this.loading = true;
            this.loginservice.loginByUsernameAndPassword(
            this.LoginForm.controls['username'].value,
            this.LoginForm.controls['password'].value
        )
            .subscribe(
                result => {
                       if (result === true) {
                        this.router.navigate(['/main']);
                    } else {
                        this.loading = false;
                    }
                }
            );
    }
}

此service.ts代码

  public loginByUsernameAndPassword(username: string, password: string): Observable<boolean> {
    let urlSearchParams = new URLSearchParams();
    urlSearchParams.append('username', username);
    urlSearchParams.append('password', password);
    let body = urlSearchParams.toString();
    let LS = require("nativescript-localstorage");
    let headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');
    return this.http.post(Api.getUrl(Api.URLS.Login_mobile), body, {
      headers: headers
    })
      .pipe(map((response: Response) => {
        let res = response.json();
        console.log('res')
        console.log(res)
        if (res.StatusCode === 0 && res.Token) {
          this.currentUser = {
            username: username,
            token: res.Token
          }
          LS.getItem(LoginService.CURRENT_USER, JSON.stringify(this.currentUser));
          Toast.makeText('Authentificate successfully').show();
          return true;
        } else {
          return false;
        }
      }));
  }

  public logout(): void {
    let LS = require("nativescript-localstorage");
    LS.removeItem(LoginService.CURRENT_USER);
    this.router.navigate(['/']);
  }

您能建议我任何想法如何实现在应用程序中始终保持登录状态,以及当我关闭应用程序,重新启动,关闭移动设备等时。仅在单击注销时才想与应用程序断开连接。

我需要你的建议。

0 个答案:

没有答案
相关问题