sails.js как получить _csrf для использования в vuejs

Поскольку chrome.storage.sync может хранить объекты JS, вы можете просто сделать это:

var save = {};
save["myKey"] = testPrefs;

chrome.storage.sync.set(save, function() {
    console.log('Settings saved');
});
0
задан simao moha 9 March 2019 в 16:09
поделиться

2 ответа

Для внешнего интерфейса

В своем внешнем интерфейсе вы можете получить доступ к CSRF для глобального объекта, вставленного Sails - window.SAILS_LOCALS._csrf.

Для тестирования

В вашем config/routes.js вы должны будете добавить это:

'GET /.temporary/csrf/token/for/tests': { action: 'security/grant-csrf-token' },

Не позволяйте этому идти в производство, хотя. Для этого рекомендуется использовать этот маршрут только во время автоматических тестов. Вот некоторая информация о тестировании в Sails.js - https://sailsjs.com/documentation/concepts/testing - Вот мои lifecycle.test.js - https://gist.github.com / Noitidart / 63df651dc76812da6cb3bfe1ce4e9e0e - Видите ли, я выставляю этот маршрут только для своих тестов, поэтому моя продукция не получает этого. Не рекомендуется тестировать ваши конечные точки с помощью Postman, потому что эти тесты эфемерны, ваша работа по тестированию теперь закончена после того, как вы закончите. Но если вы напишите модульные / целочисленные тесты, это рабочее тестирование останется навсегда.

0
ответ дан Noitidart 9 March 2019 в 16:09
поделиться

Если вы используете Sails v1

// config/security.js
module.exports.security = {
    csrf: true,
};

// config/routes.js
'GET /csrfToken': 'SomeController.grantCsrfToken', 

// api/controllers/SomeController.js
module.exports = {
 grantCsrfToken: function (req, res /*, next */) {
    // Don't grant CSRF tokens over sockets.
    if (req.isSocket) {
      if (process.env.NODE_ENV === 'production') {
        return res.notFound();
      }
      return res.badRequest(new Error('Cannot access CSRF token via socket request.  Instead, send an HTTP request (i.e. XHR) to this endpoint.'));
    }
    // Send the CSRF token wrapped in an object.
    return res.json({
      _csrf: res.locals._csrf
    });
  },
}

// assets/js/some_filename.js
function send_some_post_request(extra_params) {
  $.get("/csrfToken", function (data, jwres) {
    if (jwres != 'success') { return false; }
    msg = {
      extra_params: extra_params,
      _csrf: data._csrf
    };
    $.post("doStuff", msg, function(data, status){
    });
  });
}
0
ответ дан mansim 9 March 2019 в 16:09
поделиться
Другие вопросы по тегам:

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