我正在开发一个MEAN堆栈应用程序,我目前正在建立一个帐户系统.我已经看过几个关于身份验证的教程,都使用JWT.我还看到JWT是通过HTTP等非安全连接保护通信传输的好方法.
我已经设置了HTTPS来从我的Angular 4前端到我的NodeJS + Express后端进行通信,因此,想知道JWT是否有必要保护我的通信?
我正在使用Selenium 2.53.6和Python来测试表单提交。表格发布后,确认邮件将发送至 : first_name.last_name@mailinator.com。
Selenium 然后导航到 URL https://www.mailinator.com/inbox2.jsp?public_to=first_name.last_name#/#public_maildirdiv,该 URL是由 标识的用户的收件箱first_name.last_name。
页面加载完毕后,点击确认邮件对应的div。此单击会创建一个加载邮件的 ajax 请求。
现在我想让 Selenium 点击链接来激活电子邮件:
driver.find_element_by_xpath("//a[@id='activationLink']").click()
问题是,由于通过 AJAX 生成的邮件,Selenium 在任何时候都不会收到与 AJAX 成功后生成的 DOM 对应的 HTML。
实际上,Selenium 保留了收件箱的 HTML,但从未实现获取邮件 HTML。
我的问题是:是否可以在 AJAX 调用后刷新 HTML,以便 Selenium 可以找到
<a id="activationLink">?
注意:我已经尝试过WebDriverWait(driver, 120).until(EC.visibility_of_element_located((By.ID, "activationLink")))
或类似的技巧,但它不会改变任何东西,因为 Selenium不会刷新它指向的 HTML
我有一个带有数据库服务的 docker-compose 文件,该文件获取用户和密码的环境文件(我删除了密码的 env 变量,因为用户和密码的问题是相同的):
db:
restart: always
container_name: db
image: mariadb:10.3.9
env_file:
- my_env_file.env
volumes:
- /opt/dbdata:/var/lib/mysql
healthcheck:
test: ["CMD", "mysql", "-u", "${DB_USER}", "-e", "\"SHOW DATABASES;\""]
interval: 1m
timeout: 10s
retries: 10
Run Code Online (Sandbox Code Playgroud)
环境文件有一个 DB_USER 条目:
DB_USER=TEST
使用 docker-compose 构建和启动容器时,Docker 无法解析环境变量,因为该变量仅存在于容器中db,并且我收到以下警告:
WARNING: The DB_USER variable is not set. Defaulting to a blank string.
有没有办法告诉 Docker 避免在主机上解析此环境变量的值,而是从我的容器中解析它?
出于安全原因,我不想在主机上提供环境变量。
我也不想使用,mysqladmin因为它可能会导致误报(例如,运行状况检查可能会失败,因为数据库尚未接受连接)。