【问题标题】:Failed to authenticate on SMTP server with username "***" using 2 possible authenticators无法使用 2 个可能的身份验证器在用户名“***”的 SMTP 服务器上进行身份验证
【发布时间】:2021-06-11 19:45:54
【问题描述】:

我正在使用带有 laravel 的 google drive api 进行连续备份,所以我使用以下软件包

“nao-pon/flysystem-google-drive”:“~1.1”,以及

"spatie/laravel-backup": "^6.14"

我已经用刷新令牌设置了google drive api v3并将其放入.env

FILESYSTEM_CLOUD=google
GOOGLE_DRIVE_CLIENT_ID=****.apps.googleusercontent.com
GOOGLE_DRIVE_CLIENT_SECRET=****
GOOGLE_DRIVE_REFRESH_TOKEN=****
GOOGLE_DRIVE_FOLDER_ID=****

所以一切正常,我可以使用谷歌驱动器作为磁盘通过 cron 作业每天存储备份,唯一的问题是一周后刷新令牌过期(我假设)并停止处理此错误消息,

Failed to authenticate on SMTP server with username "****" using 2 possible authenticators. Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535 Incorrect authentication data

如果我再次从oathplayground 更改刷新令牌并将其放入.env,它会再次开始工作一周。

那么我该如何解决这个问题,因此我不需要每周生成令牌。

【问题讨论】:

  • 在oauth中,你是否让令牌自动刷新?
  • 是的,在交换令牌的授权码之前,我已经检查了“在令牌过期之前自动刷新令牌”
  • 如何获得刷新令牌。您可以显示代码快照吗?
  • 我是通过 oauth play ground 得到的
  • 在调用API之前你应该有另一种方式来获取它,如果它已经过期你应该更新你的。不要依赖 env 文件。您需要将其添加到数据库中才能在每次无效时对其进行更新。

标签: php laravel oauth google-drive-api backup


【解决方案1】:

Oauth Playground 仅用于测试。在操场上创建的令牌只能使用大约两周。

您应该实施自己的授权。

【讨论】:

【解决方案2】:

它在 OAuthPlayground 中说它将在 24 小时后撤销授权令牌。

.

设置 GCP 项目、同意屏幕和授权的过程对于所有编程语言都是相同的。请查看this answer 以获取授权的分步指南。

【讨论】:

猜你喜欢
  • 2019-01-20
  • 2018-01-13
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2019-10-02
  • 2019-09-16
  • 1970-01-01
相关资源
最近更新 更多