如何在本机脚本中保存登录详细信息

时间:2018-08-20 09:47:08

标签: nativescript

登录时,我的登录名应该被保存,我不想每次登录时都输入用户名密码。

在我的代码下面:

login() {
        this.userService.login(this.user)
            .subscribe(
            (response: any) => {
                this.router.navigate(["/dashboard"]);
            },
            (error) => alert(error)
            );
    }

userService.ts

 return this.http.post(
      url,
      JSON.stringify({
        name: user.email,
        password: user.password
      }),
      {
        headers: new HttpHeaders().set('Content-Type', 'application/json'),
        responseType: 'text'
      }
    )
      .map((response: any) => {
        for (var x in response) {
          if (response.hasOwnProperty(x)) {

          }
        }
        console.log("_body: " + response._body);
        return response._body;
      })
      .catch(this.handleErrors)
  }

6 个答案:

答案 0 :(得分:2)

NativeScript已公开application-settings module。应用程序设置模块用于将字符串,布尔值和数字存储在内置键/值存储中。在Android上使用SharedPreferences,在iOS上使用NSUserDefaults

例如,您可以存储登录信息并使用它来检查用户是否已经登录(就像在本机Android和iOS项目中一样)-demo POC here

答案 1 :(得分:1)

就像建议的@Nick一样,您可以使用application-settings模块来存储您的访问令牌,该令牌可以在用户返回时用于地下检查。

在成功进行初始登录尝试之后,请从登录过程(或您选择的任何身份验证模式)中获取JWT令牌,并将其存储以供以后进行重新身份验证,或者只是检查是否先前设置了key / [value]并且可以也用于简单的离线登录。

答案 2 :(得分:1)

请记住,任何写入UserDefaultsSharedPreferences的键和值,因此应用程序设置模块以及getString和{ {1}}方法仅存储在磁盘上,任何可以访问手机的人都可以看到。该API并不用于存储敏感数据,而仅用于持久性用户设置,因此是“默认值”和“首选项”。

如果您想要一种在设备上安全存储电子邮件地址和密码的方法,请查看以下库:Nativescript-secure-storage。它的功能与上述API极为相似,但是所有内容均经过加密,因此人们不仅可以从磁盘读取内容。

答案 3 :(得分:0)

使用react nativehttps://facebook.github.io/react-native/docs/native-modules-ios  保存登录信息。

答案 4 :(得分:0)

使用JWT,也可以使用脱机数据。 例如,查看此链接: https://medium.com/@njwest/building-a-react-native-jwt-client-api-requests-and-asyncstorage-d1a20ab60cf4

答案 5 :(得分:0)

您可以使用本地存储。

您可能有

<TextField hint="{{ 'user_name' | L }}" autocorrect="false" required autocapitalizationType="none" [(ngModel)]="model.email"
                #emailModel="ngModel" name="email" keyboardType="email"></TextField>

登录组件时,请将其保存在本地存储中

localStorage.setString("username", this.model.email);

在ngOnInit()中,您可以取回它

localStorage.getString("username");