angular - 在应用程序中始终保持登录状态,当我关闭应用程序时,使用 Nativescript 中的 Http 重新启动、关闭移动设备等
问题描述
我想在我的应用程序中保持登录状态,只有当我单击从系统注销时我才想断开连接。
请问有什么想法吗?
为了登录系统,我使用了以下代码:
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(['/']);
}
您能否建议我,任何想法如何实现在应用程序中始终保持登录状态,以及当我关闭应用程序、重新启动、关闭移动设备等时。我只想在单击注销时断开与应用程序的连接。
我需要你的建议。
解决方案
推荐阅读
- java - 如何以编程方式创建 Java SOAP Service Mock
- jenkins - 如何从 Jenkins 声明式管道中的文件中注入变量?
- ruby - Puppet 自定义资源类型实现中的访问资源类型
- ubuntu - 0% [连接到 in.archive.ubuntu.com 需要很长时间
- android - 虚拟键盘只隐藏一个编辑文本
- javascript - 不显示单选按钮 (android)
- java - 如果可以直接自动装配依赖项,为什么要通过构造函数自动装配它?
- php - 在根目录中创建文件夹并将文件上传到该文件夹 google drive api
- javascript - 从特定 JSON 字段中提取数据,将其用作变量,并更新字段值?
- service - 由于“拒绝访问”错误,PsExec 无法在 Windows 10 Pro 上运行