[英]How to set the app always login until user click the logout button on ionic3
我在ionic3中创建了一个新的移动应用程序
如果用户在未单击注销按钮的情况下关闭了该应用程序,则该用户应在重新打开该应用程序后登录。 但是,如果用户关闭应用程序并重新打开它,则会显示登录页面。
如何设置应用程序,以便用户单击“注销”按钮之前保持登录状态?
好吧,我认为他们这样做的方式是跟踪ip。 如果用户从同一ip输入,并且用户尚未注销(您必须将该信息保存在tb中),则脚本将使用用户信息(该用户信息也与ip一起在前一个tb中)登录)
你应该猜到
就我而言,我使用JWT( https://jwt.io/ )进行身份验证。
因此,当用户登录时,jwt信息也将存储在localStorage中。 当然,当用户注销时,localStorage中的JWT信息将被删除。
启动应用程序时,我检查localStorage,并且如果有有效的JWT信息(JWT也具有有效的时间信息),则使用JWT信息。
我希望这会有所帮助:)
您可以使用localstorage
恢复它
我将为您提供一个示例。由于通常app.component.ts
加载app.component.ts
所以我需要对其进行显示。
import { Component, ViewChild } from '@angular/core';
import { Platform, Nav } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import {ProfilePage} from "../pages/profile/profile";
import {LoginPage} from "../pages/login/login";
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) nav: Nav;
rootPage: any;
constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
platform.ready().then(() => {
this.initializeApp(statusBar, splashScreen);
});
}
initializeApp(statusBar: StatusBar,
splashScreen: SplashScreen) {
let username = window.localStorage.getItem('username') ? window.localStorage.getItem('username') : '';
let password = window.localStorage.getItem('password') ? window.localStorage.getItem('password') : '';
if(username == 'user' && password == 'user') {
this.nav.setRoot(ProfilePage);
}else{
this.nav.setRoot(LoginPage);
}
statusBar.styleDefault();
splashScreen.hide();
}
}
如果username
和pasword
没有值,则从本地存储中获取username
和password
,然后加载负载LoginPage
。在LoginPage
您需要设置将username
和password
存储在localstorage中。
signIn(){
if (this.loginForm.value.username=="user" && this.loginForm.value.password=="user") {
window.localStorage.setItem('username', this.loginForm.value.username);
window.localStorage.setItem('password', this.loginForm.value.password);
this.navCtrl.setRoot(ProfilePage);
}
}
而且,当您注销时,销毁username
和password
localstorage值。
window.localForage.removeItem('username')
window.localForage.removeItem('password')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.