【问题标题】:Can I use GOOGLE_APPLICATION_CREDENTIALS instead of specific mail settings我可以使用 GOOGLE_APPLICATION_CREDENTIALS 代替特定的邮件设置吗
【发布时间】:2018-11-04 06:02:13
【问题描述】:

我正在尝试通过 Flask-security 设置电子邮件确认,我想知道是否可以使用从 https://console.cloud.google.com/apis/credentials/serviceaccountkey 获得的 GOOGLE_APPLICATION_CREDENTIALS 而不是设置邮件设置(MAIL_SERVER、MAIL_PASSWORD 等)。

这是我的代码:

class BaseConfig:
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
SQLALCHEMY_RECORD_QUERIES = False
SQLALCHEMY_EXPIRE_ON_COMMIT = False

MARSHMALLOW_STRICT = True
MARSHMALLOW_DATEFORMAT = 'rfc'

SECRET_KEY = 'secret_key'
SECURITY_LOGIN_SALT = 'test'
SECURITY_PASSWORD_HASH = 'pbkdf2_sha512'
SECURITY_TRACKABLE = True
SECURITY_PASSWORD_SALT = 'something'
WTF_CSRF_ENABLED = False
SECURITY_REGISTERABLE = True
SECURITY_CONFIRMABLE = True
SECURITY_RECOVERABLE = True
SECURITY_TOKEN_AUTHENTICATION_HEADER = 'Authorization'
MAX_AGE = 86400
GOOGLE_APPLICATION_CREDENTIALS = '\google_credentials_etc.json' 

谢谢。

【问题讨论】:

    标签: python-3.x flask google-cloud-platform flask-security flask-mail


    【解决方案1】:

    GOOGLE_APPLICATION_CREDENTIALS 由 Google 客户端库使用,并且只有在设置为环境变量时才会使用。它与 Flask 无关,客户端库也不会自动从 Flask 配置中获取它。

    您可以json.loads服务帐户文件然后提取电子邮件,但凭据文件中没有服务信息或中继服务器信息。

    更重要的是,flask-mail 不通过 oauth2 连接。它使用 SMTP。我很漂亮 Gmail 中继也是 SMTP。因此,即使您以某种方式从服务帐户获得了 oauth2 令牌,您也无法使用它连接到中继服务器。

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 2010-10-11
      • 2012-08-11
      • 2022-01-23
      • 2015-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多