【问题标题】:Authentication using API Request使用 API 请求进行身份验证
【发布时间】:2015-03-26 21:38:23
【问题描述】:

我目前正在使用请求 API 编写一个简短的脚本,我需要访问我的电子邮件箱以检索一些信息。

所以我写了这段代码来进行身份验证:

#! /usr/bin/python3

import requests

payload = {'horde_user': '',
           'horde_pass': '',
           'login_post': '1'}


r = requests.post('http://webmail.technion.ac.il/login.php', data=payload)

print(r.status_code)
print(r.text)

显然,我在 payload 字典中将 horde_user 替换为我的用户名,并将 horde_pass 替换为我的密码。

但是输出的是初始页面的源代码,而我希望它是我邮箱的内容。

状态码是 200,而它应该是 302。有人可以向我解释我做错了什么。

非常感谢您的帮助!

【问题讨论】:

  • 尝试先请求页面,然后从第一个请求中提取会话 ID 以用于登录尝试。我敢打赌它失败了,因为您正在发送旧的会话 ID,而网站正在拒绝它们并将您发送回带有新会话 ID 的登录页面。 cookie 中的会话 ID 为 Hordehorde_secret_key
  • 当我尝试登录时,我得到一个 200 和一条错误消息,我的用户名/密码似乎是错误的(显然)所以你能提供一个测试帐户吗?还将r.text 写入.html 文件并打开它。也许你会看到错误。
  • 如果您查看页面的源代码,您会发现有一些隐藏的输入 - 尝试将它们包含在有效负载中。

标签: python http python-3.x http-request


【解决方案1】:

尝试先请求页面,然后从第一个请求中提取会话 ID 以用于登录尝试。我敢打赌它失败了,因为您正在发送旧的会话 ID,而网站正在拒绝它们并将您发送回带有新会话 ID 的登录页面。会话 ID 将是 cookie 中的 Horde 和 horde_secret_key。

【讨论】:

  • 您能给我一个测试帐户或某种有效凭据吗?如果没有任何登录方式,我无法进行实验。
  • 优惠!!很高兴我能帮忙
猜你喜欢
  • 2017-10-14
  • 2014-10-02
  • 1970-01-01
  • 2016-01-31
  • 2016-02-08
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
相关资源
最近更新 更多