Получить form_key с помощью javascript в Magento 2.0?

Я хотел бы создать пользовательскую страницу входа вне Magento. Для этого мне нужно получить form_key.

Как я могу получить текущий form_key, используя javascript и/или PHP из-за пределов Magento?

Примечания:

Я хочу добавить файл PHP внутри Magento для генерации for_key (но я не знаю, что написать и где его разместить).

Я новичок в Мадженто.

Я использую Magento 2.0.

Я нашел это решение. Но, пожалуйста, найдите мне лучше!

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Get the form key</title>
<script>

window.onload=function(){

/* Get form_key from Magento */
var ajax = new XMLHttpRequest();
ajax.open("POST", "/", false);
ajax.send();
document.getElementById('hidden_div').innerHTML = ajax.responseText;
var the_form_key = document.getElementsByName("form_key")[0].value;

alert(the_form_key);

};

</script>
</head>
<body>

<div id="hidden_div" style="display:none"></div>

</body>
</html>

person Gordova    schedule 24.01.2016    source источник
comment
Рассматривали ли вы вместо этого использование API?   -  person scrowler    schedule 25.01.2016
comment
Это может быть лучше! Но документация на devdocs.magento. com/guides/v2.0/get-started/ для меня слишком сложно. Я просто знаю основы PHP и Javascript. Любые предложения простых учебников?   -  person Gordova    schedule 25.01.2016


Ответы (2)


Для области frontend используйте плагин jQuery.cookie, который является частью Magento 2:

var $formKey = jQuery.cookie('form_key');

Для области adminhtml используйте константу FORM_KEY JavaScript:

var $formKey = FORM_KEY;

person likemusic    schedule 28.12.2017

Пример есть в: vendor/magento/module-checkout/view/frontend/web/js/sidebar.js

define([
    'jquery',
    ..
    'mage/cookies'
'form_key': $.mage.cookies.get('form_key')

Я вижу в admin (внутреннее пространство имен), что есть много вызовов window.FORM_KEY

person Daniel Ifrim    schedule 01.09.2019