Angular Ionic 2 auth-如果存在';它是本地存储上的用户
我有一个在Rails 5后端进行身份验证的Ionic 2应用程序。用户登录后,我将其信息存储在本地存储器中。 因此,一旦用户打开应用程序并且之前已登录,则应跳过登录页面。我正试图在我的Angular Ionic 2 auth-如果存在';它是本地存储上的用户,angular,typescript,ionic-framework,ionic2,ionic3,Angular,Typescript,Ionic Framework,Ionic2,Ionic3,我有一个在Rails 5后端进行身份验证的Ionic 2应用程序。用户登录后,我将其信息存储在本地存储器中。 因此,一旦用户打开应用程序并且之前已登录,则应跳过登录页面。我正试图在我的app.component上执行此操作,这取决于本地存储上是否有关于用户的信息,但是storage.get方法似乎是异步的,所以它在我检查后执行,所以它总是认为它是错误的 有没有办法解决这个问题?您可以在从存储中获取值后设置根页面,如下所示: @Component({ templateUrl: 'app.h
app.component
上执行此操作,这取决于本地存储上是否有关于用户的信息,但是storage.get
方法似乎是异步的,所以它在我检查后执行,所以它总是认为它是错误的
有没有办法解决这个问题?您可以在从存储中获取值后设置根页面,如下所示:
@Component({
templateUrl: 'app.html'
})
export class MyApp {
@ViewChild(Nav) navCtrl: Nav;
public rootPage; // Just declare the property, don't set a value here
constructor(...) {
this.platform.ready().then(() => {
Splashscreen.hide();
// Get the status from the storage
this.storage.get('login:status').then(loggedIn => {
this.rootPage = loggedIn ? HomePage : LoginPage;
});
});
}
}
在这种情况下,如果用户已登录,则根页面将是主页,如果未登录,则是登录页面。是的,我的问题是我在服务上使用了get功能。。。所以我必须订阅这个函数,然后执行代码。但我真的很感激,你帮了我很多忙!=)您还可以在用户登录时创建事件。。。在app.component中,您可以检查登录事件是否已发布,或者是否乐于帮助@RonanLopes:)我只是将get in the same app.component包含在其中,以向您提供总体思路,但是的,这肯定应该包含在服务中。这项工作非常有魅力。我不得不读两遍,因为我在rootPage声明中设置了根页面,导致登录屏幕闪烁了几秒钟。回答得好!我已经为我的问题找到了解决方案,将我的代码封装在条件if(this.platform.is('cordova')){}中,并且工作正常。