登录时,我的登录名应该被保存,我不想每次登录时都输入用户名密码。
在我的代码下面:
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)
}
答案 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)
请记住,任何写入UserDefaults
和SharedPreferences
的键和值,因此应用程序设置模块以及getString
和{ {1}}方法仅存储在磁盘上,任何可以访问手机的人都可以看到。该API并不用于存储敏感数据,而仅用于持久性用户设置,因此是“默认值”和“首选项”。
如果您想要一种在设备上安全存储电子邮件地址和密码的方法,请查看以下库:Nativescript-secure-storage。它的功能与上述API极为相似,但是所有内容均经过加密,因此人们不仅可以从磁盘读取内容。
答案 3 :(得分:0)
使用react native
桥https://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");