@nurdus

Как во vue реализовать авторизацию facebook или vk?

Добрый день.
Подскажите, пожалуйста, как правильно организовать авторизацию во vue?
Точнее так: корректно ли она у меня организована авторизация и почему в некоторых браузерах (IE11 или Safari) после авторизации, требуется обновить страницу.
let apiHost = 'http://domain.com';
let getOptions = {
  credentials: 'same-origin',
  redirect: 'follow'
};

let store = function() {
  return {
    user: {},
  };
};

vm = new Vue({
  el: '#app',
  data: store,

  mounted: function () {
    this.getUserInfo(); // запрос к серверу и проверка авторизованности
  },
    
  methods: {
        
    // авторизован ли пользователь
    getUserInfo: function() {
      let url = apiHost + '/get-user-info';
      fetch(url, getOptions)
        // ...
        .then(function(res) {
	      if (!res.error) {
            vm.$set(vm, 'user', res.data.user);
            return Promise.resolve(res); 
          } else {
            return Promise.reject(new Error(res.message));
          }
        })
        .then(function(res) {
          if (res.data.user.id !== undefined) {
            // пользователь авторизовался, что-то делаем дальше...
          } else {
            // пользователь НЕ авторизовался, что-то делаем дальше...
          }
        })
        .catch(function(err) {
          // обработка ошибки
        });
    },

    // переход на страницу авторизации 
    loginVK: function (){
      let url = apiHost + '/ready'; // жив ли сервер?!...
      fetch(url, getOptions)
        // ...
        .then(function() {
          window.location = apiHost + '/vkAuth'; // если жив, идем дальше
        })
        .catch(function(err) {  
          // обработка ошибки
        });
    }
  }
});

П.С. SPA не генерится node сервером, а лежит отдельно.
  • Вопрос задан
  • 392 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы