首页 > 解决方案 > 如何使用 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'}

标签: javascriptpythondjangongrok

解决方案


ngrok 使用的身份验证方法称为 HTTP Basic Auth。要将它与 requests 库一起使用,您将登录名和密码作为auth参数中的元组传递:

r = client.post(loginURL, auth=(UN, PWD))

文档:基本身份验证 - 请求


推荐阅读