Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Ionic 3-提供程序是否在页面上持久存在?_Angular_Typescript_Ionic Framework_Ionic3 - Fatal编程技术网

Angular Ionic 3-提供程序是否在页面上持久存在?

Angular Ionic 3-提供程序是否在页面上持久存在?,angular,typescript,ionic-framework,ionic3,Angular,Typescript,Ionic Framework,Ionic3,情景: 当用户验证其手机时,他们将调用此身份验证提供程序的Login()函数。在立即登录之后,他们被带到一个配置文件页面,该页面将调用getUser函数。但是,变量user_id和user_token不会持久存在 提供者/Auth.ts import {Injectable} from '@angular/core'; import {Http} from '@angular/http'; import {Api} from './api'; import {Settings} from './

情景:

当用户验证其手机时,他们将调用此身份验证提供程序的Login()函数。在立即登录之后,他们被带到一个配置文件页面,该页面将调用getUser函数。但是,变量user_id和user_token不会持久存在

提供者/Auth.ts

import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {Api} from './api';
import {Settings} from './settings';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/toPromise';
import {Storage} from "@ionic/storage";


@Injectable()
export class Auth {
    isLoggedIn: Boolean;
    user_id: String;
    user_token: String;

    constructor(public http: Http, public api: Api, public settings: Settings, public storage: Storage) {
    }

    login(user) {


        this.logout();


        this.storage.set('user_id', user.id);
        this.storage.set('user_jwt', user.jwt);

        this.isLoggedIn = true;
        this.user_id = user._id;
        this.user_token = user.jwt;


    }

    logout() {

        this.storage.remove('user_id');
        this.storage.remove('user_jwt');

        this.isLoggedIn = false;
        this.user_id = null;
        this.user_token = null;
    }

    isAuthenticated() {
        return this.isLoggedIn;
    }

    getUser() {

        console.log("UserID: " + this.user_id);
        console.log("UserToken: " + this.user_token);

        if (this.isAuthenticated()) {
            return {
                id: this.user_id,
                token: this.user_token,
            };
        }

    }

}

p.S我已在app.module.ts providers[]中添加了此提供程序。

不会持久保存数据。因此,您必须通过
存储
模块获取数据,如下所示

getUser() {
     // to get a key/value pair
      this.storage.get('user_id').then((val) => {
        console.log('Your user_id', val);
      });
}

但我正在清理上一个会话,并在之后直接设置一个新会话。正如你们所看到的。你们可以直接在下面的登录函数中看到,我设置了这个。user\u id=user.\u id等等。不,它不会那样工作。这些是
承诺
。因此,请尝试不这样做,然后查看结果。您好,我删除了注销,但它们仍然未定义。然后您的问题是
user
object here
login(user)
它的值是多少?你可以很容易地调试这个不?好的,谢谢,我现在开始工作了。最后,在此会话/存储中处理用户是否是一种良好的做法?