@rezaridwansyah wrote:
Heloo, i’m new on ionic and angular.
i wanna ask something weird. i have authservice which have a authentication detail, included token and status islogin.
type or paste code here constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl:ModalController,public auth: AuthService) { } ionViewDidLoad() { console.log(this.auth) console.log(this.auth.loggedIn) if(this.auth.loggedIn){ console.log(this.auth); this.navCtrl.push("TabsPage"); } }
when i call
console.log(this.auth)
the code returned authentication object with value
buth when i call
console.log(this.auth.loggedin)
it return undefined, when i expect return value is false
this auth.service.ts
import { Injectable, NgZone, Component } from '@angular/core'; import { Storage } from '@ionic/storage'; // Import AUTH_CONFIG, Auth0Cordova, and auth0.js import { AUTH_CONFIG } from './auth.config'; import Auth0Cordova from '@auth0/cordova'; import * as auth0 from 'auth0-js'; @Injectable() export class AuthService { Auth0 = new auth0.WebAuth(AUTH_CONFIG); Client = new Auth0Cordova(AUTH_CONFIG); accessToken: string; user: any; loggedIn: boolean; loading = true; constructor( public zone: NgZone, private storage: Storage ) { this.storage.get('profile').then(user => this.user = user); this.storage.get('access_token').then(token => this.accessToken = token); this.storage.get('expires_at').then(exp => { this.loggedIn = Date.now() < JSON.parse(exp); this.loading = false; }); } login() { this.loading = true; const options = { scope: 'openid profile offline_access' }; // Authorize login request with Auth0: open login page and get auth results this.Client.authorize(options, (err, authResult) => { if (err) { throw err; } // Set access token this.storage.set('access_token', authResult.accessToken); this.accessToken = authResult.accessToken; // Set access token expiration const expiresAt = JSON.stringify((authResult.expiresIn * 1000) + new Date().getTime()); this.storage.set('expires_at', expiresAt); // Set logged in this.loading = false; this.loggedIn = true; // Fetch user's profile info this.Auth0.client.userInfo(this.accessToken, (err, profile) => { if (err) { throw err; } this.storage.set('profile', profile).then(val => this.zone.run(() => this.user = profile) ); }); }); } logout() { this.storage.remove('profile'); this.storage.remove('access_token'); this.storage.remove('expires_at'); this.accessToken = null; this.user = null; this.loggedIn = false; } isLoggedIn() :boolean{ return this.loggedIn; } }
and this login.ts
import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams, ModalController } from 'ionic-angular'; import { AuthService } from './../../services/auth.service'; @IonicPage() @Component({ selector: 'page-login', templateUrl: 'login.html', }) export class LoginPage { constructor(public navCtrl: NavController, public navParams: NavParams, public modalCtrl:ModalController,public auth: AuthService) { } ionViewDidLoad() { console.log(this.auth) console.log(this.auth.loggedIn) if(this.auth.loggedIn){ console.log(this.auth); this.navCtrl.push("TabsPage"); } } verify() { this.navCtrl.push('VerifyPage') } signup() { this.navCtrl.push('SignupPage') } forgot(){ let modal = this.modalCtrl.create('ForgotPage'); modal.present(); } skip(){ this.navCtrl.push('TabsPage'); } toLogin(){ this.navCtrl.push("GLogin"); } }
thank’s
Posts: 1
Participants: 1