我试图通过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'
谢谢。
答案 0 :(得分:1)
GOOGLE_APPLICATION_CREDENTIALS
由Google客户端库使用,并且仅在设置为环境变量时使用。它与Flask无关,客户端库也不会自动从Flask配置中获取它。
您可以json.loads
服务帐户文件,然后提取电子邮件,但凭证文件中没有服务信息或中继服务器信息。
更重要的是,flask-mail
无法通过oauth2连接。它使用SMTP。我很漂亮Gmail继电器也是SMTP。因此,即使您以某种方式从服务帐户获得了oauth2令牌,您也无法使用它来连接到中继服务器。