Bitnami Parse Server Dashboard 添加邮件适配器

Posted

技术标签:

【中文标题】Bitnami Parse Server Dashboard 添加邮件适配器【英文标题】:Bitnami Parse Server Dashboard add mail adapter 【发布时间】:2020-04-10 12:43:07 【问题描述】:

我正在使用来自 AWS 市场的 Parse Server,并且能够毫无问题地访问数据库。但是,我无法向新注册的用户发送电子邮件验证。

经过一番研究,我知道我必须添加邮件适配器并为解析服务器启用一些参数,但我不知道如何从仪表板添加适配器

https://github.com/parse-community/parse-server#email-verification-and-password-reset

【问题讨论】:

【参考方案1】:

无法使用仪表板添加邮件适配器。您应该默认安装了Mailgun adapter。

要添加访问服务器所需的配置,并将以下内容添加到 index.js 文件中:

var server = ParseServer(
  ...otherOptions,
  // Enable email verification
  verifyUserEmails: true,

  // if `verifyUserEmails` is `true` and
  //     if `emailVerifyTokenValidityDuration` is `undefined` then
  //        email verify token never expires
  //     else
  //        email verify token expires after `emailVerifyTokenValidityDuration`
  //
  // `emailVerifyTokenValidityDuration` defaults to `undefined`
  //
  // email verify token below expires in 2 hours (= 2 * 60 * 60 == 7200 seconds)
  emailVerifyTokenValidityDuration: 2 * 60 * 60, // in seconds (2 hours = 7200 seconds)

  // set preventLoginWithUnverifiedEmail to false to allow user to login without verifying their email
  // set preventLoginWithUnverifiedEmail to true to prevent user from login if their email is not verified
  preventLoginWithUnverifiedEmail: false, // defaults to false

  // The public URL of your app.
  // This will appear in the link that is used to verify email addresses and reset passwords.
  // Set the mount path as it is in serverURL
  publicServerURL: 'https://example.com/parse',
  // Your apps name. This will appear in the subject and body of the emails that are sent.
  appName: 'Parse App',
  // The email adapter
  emailAdapter: 
    module: '@parse/simple-mailgun-adapter',
    options: 
      // The address that your emails come from
      fromAddress: 'parse@example.com',
      // Your domain from mailgun.com
      domain: 'example.com',
      // Your API key from mailgun.com
      apiKey: 'key-mykey',
    
  ,

  // account lockout policy setting (OPTIONAL) - defaults to undefined
  // if the account lockout policy is set and there are more than `threshold` number of failed login attempts then the `login` api call returns error code `Parse.Error.OBJECT_NOT_FOUND` with error message `Your account is locked due to multiple failed login attempts. Please try again after <duration> minute(s)`. After `duration` minutes of no login attempts, the application will allow the user to try login again.
  accountLockout: 
    duration: 5, // duration policy setting determines the number of minutes that a locked-out account remains locked out before automatically becoming unlocked. Set it to a value greater than 0 and less than 100000.
    threshold: 3, // threshold policy setting determines the number of failed sign-in attempts that will cause a user account to be locked. Set it to an integer value greater than 0 and less than 1000.
  ,
  // optional settings to enforce password policies
  passwordPolicy: 
    // Two optional settings to enforce strong passwords. Either one or both can be specified.
    // If both are specified, both checks must pass to accept the password
    // 1. a RegExp object or a regex string representing the pattern to enforce
    validatorPattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.8,)/, // enforce password with at least 8 char with at least 1 lower case, 1 upper case and 1 digit
    // 2. a callback function to be invoked to validate the password
    validatorCallback: (password) =>  return validatePassword(password) ,
    validationError: 'Password must contain at least 1 digit.' // optional error message to be sent instead of the default "Password does not meet the Password Policy requirements." message.
    doNotAllowUsername: true, // optional setting to disallow username in passwords
    maxPasswordAge: 90, // optional setting in days for password expiry. Login fails if user does not reset the password within this period after signup/last reset.
    maxPasswordHistory: 5, // optional setting to prevent reuse of previous n passwords. Maximum value that can be specified is 20. Not specifying it or specifying 0 will not enforce history.
    //optional setting to set a validity duration for password reset links (in seconds)
    resetTokenValidityDuration: 24*60*60, // expire after 24 hours
  
);

您需要用自己的值替换一些值。详情请见here。

【讨论】:

谢谢汤姆。我可以知道在哪里可以找到 index.js 文件吗?我能找到的只是 /opt/bitnami/parse 目录中的 config.json 文件。 我不确定,我从未使用过 Bitnami Parse Server 堆栈,但我确实在另一篇文章中看到了这个位置 -> /opt/bitnami/nami/index.js

以上是关于Bitnami Parse Server Dashboard 添加邮件适配器的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Web 服务上的 Bitnami Parse Server 安装不完整

Bitnami EC2 Parse Server Instance,更改默认电子邮件文件

AWS Bitnami Parse Server - 添加 HTTP 身份验证使我在解析仪表板中的应用程序“未经授权”

如何查看 Parse Server 云代码日志?

从 android studio 在 bitnami Parse 服务器上设置电子邮件验证

在android studio上设置bitnami Parse服务器的电子邮件验证