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

Nativescript 如何在本机脚本中保存登录详细信息,nativescript,Nativescript,当我登录时,我的登录应该被保存,我不想每次登录都输入用户名和密码 下面是我的代码: login() { this.userService.login(this.user) .subscribe( (response: any) => { this.router.navigate(["/dashboard"]); }, (error) => a

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

下面是我的代码:

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)
  }

使用JWT,也可以使用脱机数据。 请查看此链接,例如:
使用JWT,也可以使用脱机数据。 请查看此链接,例如:

NativeScript已公开。应用程序设置模块用于在内置的键/值存储中存储字符串、布尔值和数字。在Android上使用
SharedReferences
,在iOS上使用
NSUserDefaults


例如,您可以存储登录信息,并使用它检查用户是否已经登录(就像您在本机Android和iOS项目中所做的那样)

NativeScript已经公开了登录信息。应用程序设置模块用于在内置的键/值存储中存储字符串、布尔值和数字。在Android上使用
SharedReferences
,在iOS上使用
NSUserDefaults


例如,您可以存储登录信息并使用它检查用户是否已经登录(就像您在本机Android和iOS项目中所做的那样)

您可以使用本地存储

你可能有

<TextField hint="{{ 'user_name' | L }}" autocorrect="false" required autocapitalizationType="none" [(ngModel)]="model.email"
                #emailModel="ngModel" name="email" keyboardType="email"></TextField>
在ngOnInit()中,可以将其取回

localStorage.getString("username");

您可以使用本地存储

你可能有

<TextField hint="{{ 'user_name' | L }}" autocorrect="false" required autocapitalizationType="none" [(ngModel)]="model.email"
                #emailModel="ngModel" name="email" keyboardType="email"></TextField>
在ngOnInit()中,可以将其取回

localStorage.getString("username");
正如建议的那样,您可以使用模块存储访问令牌,以便在用户返回时用于地下检查

首次登录成功后,从登录过程(或您选择的任何身份验证模式)获取JWT令牌,并将其存储以供以后重新身份验证,或者只需检查key/[value]是否已事先设置,也可用于简单的脱机登录。

就像建议的那样,您可以使用模块来存储您的访问令牌,以便在用户稍后返回时用于地下检查


初始登录尝试成功后,从登录过程(或您选择的任何身份验证模式)获取JWT令牌,并将其存储以供以后重新身份验证,或者只需检查密钥是否为/[值]以前已设置,也可用于简单的脱机登录。

请记住,写入
用户的任何键和值都默认为
共享引用,因此,应用程序设置模块和
getString
setString
方法使用的本机API只存储在磁盘上,供任何有权访问手机的人查看。此API不用于存储敏感数据,仅用于持久化用户设置,因此“默认值”和“首选项”


如果您想在设备上安全存储电子邮件地址和密码,请查看此库:。它的工作与前面提到的API非常相似,但所有内容都经过加密,因此人们不能只从磁盘读取内容。

请记住,写入
用户默认值
共享引用的任何密钥和值,因此,应用程序设置模块和
getString
setString
方法使用的本机API只存储在磁盘上,供任何有权访问手机的人查看。此API不用于存储敏感数据,仅用于持久化用户设置,因此“默认值”和“首选项”


如果您想在设备上安全存储电子邮件地址和密码,请查看此库:。它的工作与前面提到的API非常相似,但所有内容都经过加密,因此人们不能仅从磁盘读取内容。

React-native和NativeScript是两个不同的框架,因此标记有点混淆(删除React标记,但如果您使用的是此框架而不是NativeScript,请随时更正我的错误)React-native和NativeScript是两个不同的框架,因此标记有点混乱(删除React标记,但如果您使用的是此框架而不是NativeScript,请随时更正我)。值得注意的是,这些首选项仅保存在磁盘上的一个文件中,因此仅用于以下目的:首选项和默认值。下面我的回答对此进行了扩展,并显示了一种在设备上使用加密存储的替代方案,用于电子邮件地址和密码等隐私敏感数据:)值得注意的是,这些首选项仅保存在磁盘上的一个文件中,因此仅用于以下用途:首选项和默认值。下面我的回答对此进行了扩展,并显示了一种在设备上使用加密存储的替代方案,用于电子邮件地址和密码等隐私敏感数据:)