Запомнить логин на Facebook - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть логин на Facebook в моем приложении, но каждый раз, когда приложение закрывается и открывается снова, мне нужно снова авторизоваться на Facebook.

Как мне сохранить логин пользователя на Facebook, чтобы я не делал этого?Приходится ли снова нажимать на кнопку входа через Facebook и просто перенаправлять на домашнюю страницу?

Мой логин TS:

loginWithFB(userData) {


this.fb.login(['email', 'public_profile']).then((response: FacebookLoginResponse) => {
  this.fb.api('me?fields=id,name,email,first_name,picture.width(720).height(720).as(picture_small)', []).then(profile => {
    this.userData = { email: profile['email'], first_name: profile['first_name'], picture: profile['picture_small']['data']['url'], username: profile['name'] }

    if (this.userData != "") {

      this.navCtrl.setRoot(HomePage, { 'logfb': this.userData })

      this.events.publish('loginfacebook', this.userData, Date.now());
      //  this.navCtrl.push(HomePage, {
      //   'logfb': this.userData
      // });
    } else {
      let toast = this.toastCtrl.create({ duration: 3000, position: 'bottom' 
  });
      toast.setMessage('Não foi possível logar com Facebook');
      toast.present();
    }
  })

});

}

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Используйте Localstorage плагин.

Звоните loginWithFB() со страницы входа пользователя.Внутри этой функции установите для зарегистрированного пользователя значение localstorage:

loginWithFB(userData) {
        this.fb.login(['email', 'public_profile']).then((response: FacebookLoginResponse) => {
                    this.fb.api('me?fields=id,name,email,first_name,picture.width(720).height(720).as(picture_small)', [])
                    .then(profile => {
                        this.userData = {
                            email: profile['email'],
                            first_name: profile['first_name'],
                            picture: profile['picture_small']['data']['url'],
                            username: profile['name']
                        }
                        // Set user to storage
                        this.nativeStorage.setItem('user', this.userData)
                    })
                    .then(() => { // Redirect to user page })
        // ....

Последний шаг - получение пользовательских данных, когда platform is ready из localstorage:

Пример:

platform.ready().then(() => {
      // Here we will check if the user is already logged in
      // because we don't want to ask users to log in each time they open the app
      let env = this;
      this.nativeStorage.getItem('user')
      .then( function (data) {
        // user is previously logged and we have his data
        // we will let him access the app
        env.nav.push(UserPage);
        env.splashScreen.hide();
      }, function (error) {
        //we don't have the user data so we will ask him to log in
        env.nav.push(LoginPage);
        env.splashScreen.hide();
      });
      this.statusBar.styleDefault();
    });

Это очень полезная ссылка: Facebook Войти

0 голосов
/ 11 декабря 2018

Используйте для этого localalstorage, поэтому при каждой перезагрузке страницы localalstorage видит, что вы вошли в систему и остается в ней, а когда вы хотите выйти из системы, используйте кнопку и очистите localstorage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...