【问题标题】:Does PHPMailer with oauth2-google use get_oauth_token带有 oauth2-google 的 PHPMailer 是否使用 get_oauth_token
【发布时间】:2020-12-27 22:45:22
【问题描述】:

我们已经使用 oauth2-google(通过 GitHub)实现了 PHPMailer:没问题。

但我试图了解使用 get_oauth_token 授权代码背后的逻辑。 当独立运行时,它只是“循环”到授权端点并返回以获取授权令牌,然后使用它从令牌端点请求访问令牌和刷新令牌。然后,开发人员将刷新令牌作为参数粘贴到 PHPMailer 的 OAuth 包装类的实例化中。一切都非常简单。

我的疑惑是:

  • get_oauth_token.php 然后被 PHPMailer OAuth 和 theLeague 的 OAuth 客户端使用

  • 后者是否在不调用 get_oauth_token 的情况下自行获取授权和访问令牌(以及必要时新的刷新令牌)。

在 PHPMailer 发布的示例中,redirectURI(即 get_oauth_token 的 URI)没有传递给 Google 提供程序实例化,我们的工作(到目前为止......)实现也没有这样做。因此,我假设它不使用 get_oauth_token 或任何类似的回调机制,因为需要像 get_oauth_token 本身那样提前将所需的重定向 URI 定义到 Google Developer 控制台。但是 phpleague / oauth2-google 的 Readme.md 表明应该指定一个

但是……theLeague 的 OAuth-client 的 Abstract Provider 类包含一个 __construct 来设置一些选项,其中包括 redirectUri。稍后在 getAuthorizationParameters 中,如果没有提供,它会设置一个 redirectUri,并在 GetAcccessToken 等中使用 redirectUri。

谁能详细说明在这种情况下如何使用redirectURI?

【问题讨论】:

  • get_oauth_token 只需要一次,当您最初设置脚本时。获得刷新令牌后,一切就绪。您可能已经注意到,HTTP 操作(例如 OAuth 回调)不适用于 SMTP。除此之外,我不是询问 OAuth 的人,但听起来 OAuth 客户端本身支持处理回调,尽管 PHPMailer 没有使用它。

标签: oauth-2.0 google-oauth phpmailer


【解决方案1】:

在用户登录 Google 后,需要 redirectUri 以便 Google 重定向回原始网站以完成 OAuth 交易。一旦访问和刷新令牌可用,redirectUri 将(可能)永远不会被使用,除非刷新令牌无效。

我不明白这与 PHPMailer 有什么关系,所以我无法回答这部分问题。

【讨论】:

    猜你喜欢
    • 2014-01-18
    • 2015-05-22
    • 1970-01-01
    • 2022-11-11
    • 2023-02-10
    • 2020-12-10
    • 2019-07-28
    • 2017-03-03
    • 1970-01-01
    相关资源
    最近更新 更多