javascript - 如何使用 Python 和/或 Javascript 自动验证 ngrok 密码?
问题描述
我正在使用 ngrok 在树莓派上公开我的本地主机,并且 ngrok 受密码保护。我在网络外的另一台计算机上使用 Django 来访问这个树莓派上的网页(简单服务器)。我不想手动输入 ngrok 的用户名和密码。
如何自动填写 ngrok 用户/密码,这是 chrome 中要求输入用户和密码的弹出窗口?
我尝试过的:我首先尝试在我的模板中使用 JS,只是使用了一个 fetch 请求:
https://user:password@myngrokdomain.ngrok.io
但是 chrome 在控制台中抛出了一个错误,说我不能像这样以纯文本形式传递凭据,这是理所当然的......
然后我尝试使用 python 请求:
UN= "myuser"
PWD = "mypassword"
loginURL = "https://myngrokdomain.ngrok.io"
client = requests.session()
login_data = dict(username=UN, password=PWD,)
r = client.post(loginURL, data=login_data)
这返回了 401 拒绝访问
r.headers + r.reason
返回:
401 Unauthorized Unauthorized {'Content-Length': '16', 'Content-Type': 'text/plain', 'Www-Authenticate': 'Basic realm="ngrok"', 'Date': 'Tue, 16 Mar 2021 15:22:15 GMT'}
解决方案
ngrok 使用的身份验证方法称为 HTTP Basic Auth。要将它与 requests 库一起使用,您将登录名和密码作为auth
参数中的元组传递:
r = client.post(loginURL, auth=(UN, PWD))
文档:基本身份验证 - 请求
推荐阅读
- laravel - Apache2 多个文件夹
- java - 动态创建许多对象后动画变得滞后
- c++ - 8 拼图代码。我的队列没有填充问题,我找不到我的错误的位置
- qt - QDir::rename 返回 false
- cucumber - 在大型代码库/团队中重用黄瓜步骤
- reactjs - 如何使用 Nav.Link 和 React Router 在导航栏中设置活动链接?
- laravel - Laravel 关系很慢
- intellij-idea - 在没有装订线的 Intellij 中添加条件断点
- javascript - Javascript将这个和其他参数传递给函数
- java - 使用 Selenium 和 JUnit 解析 HTML 文档中的链接