如何处理带有请求的SMS 2FA?

时间:2019-11-26 23:05:49

标签: python-3.x authentication request sms two-factor-authentication

我正在编写一个脚本来登录ATT Web门户以访问我的账单。我在处理身份验证时遇到困难。我的手动工作流程如下:

  1. 浏览到https://www.att.com/my/#/login
  2. 提交凭据。
  3. 如果无法识别浏览器,请选择要通过短信接收一次性代码的电话线。在下一页输入代码。 (我认为每次尝试通过Python连接时,系统都会提示我输入2FA SMSM)SMS 2FA
  4. 访问帐单明细:https://www.att.com/my/#/viewBill

到目前为止,我的脚本如下:

import requests
from bs4 import BeautifulSoup


user = 'some_user@example.com'
password = 'pass'

session = requests.Session()
session.auth = (user, password)

try:
    auth = session.post('https://www.att.com/my/#/login')
except Exception as e:
    print(f"{' EXCEPTION ':#^150}")
    print(e)
else:
    print(auth)
    print(BeautifulSoup(auth.text, features='html.parser').prettify())
    try:
        dev = session.get('https://www.att.com/my/#/viewBill')
    except Exception as e:
        print(f"{' EXCEPTION ':#^150}")
        print(e)
    else:
        print(dev.text)
        soup = BeautifulSoup(dev.text, features='html.parser')
        print(soup.prettify())

我从print(auth)得到的结果是<Response [401]>

我的脚本只应提示我输入一次SMS代码,因为需要在脚本上对用户名,密码和接收代码行进行硬编码。我知道如何对用户名和密码进行硬编码,而不是在接收代码的那一行。

如何修改脚本以成功验证网站并通过Python访问我的账单?

0 个答案:

没有答案