2

我想从 Magento 外部创建一个自定义登录页面。为此,我需要获取 form_key。

如何从 Magento 外部使用 javascript 和/或 PHP 获取当前的 form_key?

笔记:

我愿意在 Magento 中添加一个 PHP 文件来生成 for_key(但我不知道该写什么以及放置它的位置)。

我是 Magento 的新手。

我正在运行 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>
4

2 回答 2

8

对于frontend区域使用jQuery.cookie插件,它是 Magento 2 的一部分:

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

对于adminhtml区域使用FORM_KEYJavaScript 常量:

var $formKey = FORM_KEY;

于 2017-12-28T05:51:34.623 回答
4

有一个例子: vendor/magento/module-checkout/view/frontend/web/js/sidebar.js

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

我在管理员(后端命名空间)中看到有很多调用window.FORM_KEY

于 2019-09-01T13:55:31.580 回答