我在Cookie中有一个加密链接,其中包含一个cutomer的电子邮件和密码。 当我转到此页面时,电子邮件和密码将被取消(所有这一切都正常)。
我发现一个线程告诉我将POST方法中的3个参数传递给某个url: email,passwd,submitLogin。 引用的线程 - > PrestaShop - Login programmatically
我没有其他选择使用ajax post方法执行此登录,如下所示:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
<meta name="_csrf" content="${_csrf.token}"/>
<meta name="_csrf_header" content="${_csrf.headerName}"/>
<?php
function base64_url_decode($input) {
return base64_decode(strtr($input, '-_,', '+/='));
}
$email = base64_url_decode($_GET['id']);
$password = base64_url_decode($_GET['pwd']);
?>
<script>
$( document ).ready(function() {
$.post('index.php?controller=authentication', { back: 'my-account', email: '<?php echo $email ?>', passwd : '<?php echo $password ?>', SubmitLogin: 1},
function(returnedData){
console.log(returnedData);
}).fail(function(){
console.log("error");
});
});
</script>
然而,ajax的响应对应于登录页面,特别是没有任何消息。
有人会知道它为什么不登录我们吗?
答案 0 :(得分:1)
我找到了解决问题的方法。
上一个获得awnser的线程是正确的,但仅限于他们的prestashop版本(v1.5),我一直使用v1.7(当前最新版本)。
差异是控制器验证的post变量的名称: V1.5:
而在v1.7中,这些应该改为:
因此更改帖子值的名称对我来说是这样的。 我仍然有问题,它在我的ajax帖子上返回了一个失败,但它的工作原理很奇怪。
我感谢所有花时间阅读我的帖子的人。