我正在尝试使用请求模块从Python脚本更改Magento密码帐户,我编写的相关代码如下所示:
import requests
from bs4 import BeautifulSoup
[...]
s = requests.session()
main_url = 'https://account.magento.com/customer/account/login/'
html_data = s.get(main_url)
form_soup = BeautifulSoup(html_data.content, 'html.parser')
form_key = form_soup.find('input', {'name':'form_key'})['value']
login_route = 'https://account.magento.com/customer/account/loginPost/'
login_payload = {
'form_key': form_key,
'login[username]': web_user,
'login[password]': web_pass
}
login_req = s.post(login_route, data=login_payload)
[..]
account_change_password_post = "https://account.magento.com/customer/account/changePasswordPost/"
change_password_payload = {
'form_key': form_key,
'current_password': web_pass,
'password': new_pass,
'password_confirmation' : new_pass
}
change_pass_req = s.post(account_change_password_post, data=change_password_payload)
但是它不允许我更新密码,所以我想知道是否有人可以告诉我,通过Python将密码更新到Magento帐户需要什么
我解决了你的案子
TL;DR:您需要导航到
/customer/account/changepassword/
页面,并从这个新加载的页面重新获取与更改密码表单关联的新form_key
Python脚本将起作用
但出了什么问题
与问题中的脚本相关的API响应标题实际上揭示了问题所在,尽管响应状态为200。如果您签出响应头并查看
Set-Cookie
键,然后签出mage-messages
部分,您将发现与API调用相关的错误消息错误是US-ASCIIURL编码的:
并解码至:
相关问题 更多 >
编程相关推荐