• Как перенести этот код в Vuex?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    А в чем проблема? Передайте res в коммит вторым параметром, извлеките из него что нужно, сохраните в стор.
    Ещё у вас чуть идеология vuex нарушается, вы используете v-model т.е напрямую изменяете стейт, а должны это делать только через мутации.
    Ответ написан
  • Как сделать POST с другого домена?

    myspace
    @myspace
    на сервере:
    let corsOptions = {
        origin: 'http://front.xxx.ru',
        optionsSuccessStatus: 200, 
        credentials: true
    };
    
    app.use(cors(corsOptions));


    а на клиенте

    angularjs 1.x
    $httpProvider.defaults.withCredentials = true;

    purejs
    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;
    
    xhr.open('POST', 'http://xxx.ru', true)

    jquery
    $.ajax({
       ///
        crossDomain: true,
      ///
    });
    Ответ написан
    2 комментария
  • Как сервер авторизации JWT и API сервер проводят валидацию токена?

    DarkRaven
    @DarkRaven
    разработка программного обеспечения
    Вообще, второе приложение (API) должно уметь по данному токену получать пользователя.
    По сути, JWT-токен состоит из трех частей:
    • Заголовок с алгоритмом
    • Тело
    • Подпись


    В теле, обычно лежит информация вида:
    1. Когда выдан
    2. Срок действия
    3. Кто выдал
    4. Публичные метки (роли, идентификатор пользователя и т.п.)


    API декодирует токен, в зависимости от алгоритма (может быть понадобится p12 - сертификат, все зависит от настроек) и на основание этой информации получает пользователя. Как только у вас истекает время жизни токена, приложение бросает 401 и вам нужно заново получить токен.

    Валидация - проверка соответствия тела токена подписи, она происходит посредством механизма подписи, который определяется из первого заголовка. Тут может быть и хэширование ключом, а может и достаточно парольной фразы.

    Есть другой вариант, когда сервер авторизации дает два токена, второй - то что называется refresh_token. При такой ситуации, API может запросить новый токен для этого пользователя и дальше общаться через новый токен.

    Важно понимать, что использует клиент в качестве библиотеки для JWT-аутентификации (а API - это клиент), как она (библиотека) может работать.
    Ответ написан
    6 комментариев
  • Почему сохраняется только первый юзер в базу?

    @emp1re
    exports.register = async (req, res, next) => {
      const user = new User({ email: req.body.email, name: req.body.name }) 
      const register = promisify(User.register, User) это чей метод? bluebird? 
      await register(user, req.body.password) это аналог save? Какой запрос к базе тут делаете? 
      next()  <--- Что делает этот next? Какой следущий хендлер в цепочке? 
    }

    А говорят callback зло, давай вместе разберемся что тут происходит.
    Ответ написан
    4 комментария