【问题标题】:Send verification emails in Meteor without accounts-password在没有帐户密码的 Meteor 中发送验证电子邮件
【发布时间】:2015-05-31 19:36:36
【问题描述】:

在我的 Meteor 网站上,用户可以使用来自特定提供商 (vKontakte) 的 OAuth 身份验证登录。登录后,在我网站的特殊页面上,用户还可以指定他们的电子邮件地址以接收通知。显然,我想在发送任何通知之前验证地址。

我在 Meteor 文档和其他网站中找到的电子邮件验证标准说明使用 accounts-password 包。没关系,我可以从我的电子邮件更新代码中调用sendVerificationEmail(),但问题是accounts-password 还增加了本地(非OAuth)注册的可能性。我的站点与 OAuth 提供程序的耦合度相当高,因此我不想通过此 OAuth 提供程序以外的任何其他方式登录我的站点,因此我不希望在我的站点上有 accounts-password 包。或者至少我希望accounts-password 从用户的角度来看没有任何影响,除了发送验证电子邮件的可能性(没有注册按钮等)

没有accounts-password包有没有办法发送验证邮件?或者禁用除电子邮件验证之外的所有accounts-password 功能?

当然,我可以完全手动实现电子邮件验证(生成令牌,发送电子邮件,设置验证路由),但如果有一些更标准的方式来做到这一点,我最好坚持下去。

【问题讨论】:

  • 我想解决这个完全相同的问题,到目前为止有什么进展吗?我也不同意添加帐户密码并使用 CSS 解决它。
  • @flowen,我添加了我的“解决方案”作为答案

标签: meteor


【解决方案1】:

我终于通过将accounts-password.js 文件复制到server/lib 并删除所有我不需要的代码来解决这个问题。我不喜欢这个解决方案,因为如果 accounts-password 将被更新,我将不得不手动更新我的文件,但我没有其他方法可以做到这一点。

【讨论】:

  • 感谢更新,我害怕做类似的事情。也许有足够技能的人(我没有)可以为这个问题创建一个包
【解决方案2】:

我不确定是否需要您所描述的所有内容。当然,代码将存在于服务器上,但如果您要添加 accounts-password 并调用 sendVerificationEmail() ,那么您将不得不拥有它允许的注册和密码功能。您是否使用 accounts-ui-unstyled 来处理帐户的前端部分?如果是这样,您就不能让用户看到或使用您不希望他们拥有的功能。

【讨论】:

  • 是的,我使用accounts-ui 为OAuth 登录提供ui,所以当我添加accounts-password 时,在登录弹出电子邮件和密码字段中出现,这是我不想要的。如何可靠地让用户看不到和使用此功能?
  • 如果我是你,我会简单地删除 accounts-ui 并添加 accounts-ui-unstyled。从那里我会使用 css 来隐藏或删除我不想要的元素。或者,您可以制作自己的帐户模板。基本上,您可以使用 accounts-ui 模板作为基本示例并构建您自己的。
  • 我不想只使用 css 删除登录选项,因为用户很容易能够重新启用它。所以现在我没有添加帐户密码,而是简单地将其文件复制到我的项目中,并从那里删除所有密码登录,留下电子邮件验证。这似乎奏效了。
  • 我至少在理论上同意,css 将把功能留给精明的用户能够潜入和使用。您的方法可能是首选。但是,如果您的产品与 Facebook 登录紧密相关,那么从功能的角度来看,使另一种登录类型毫无用处意味着任何通过操纵 css 创建自己的登录类型的人只会感到沮丧。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 2020-07-19
  • 2013-08-24
  • 2015-06-22
  • 2021-08-13
相关资源
最近更新 更多