在我的Meteor网站上,用户可以使用特定提供商(vKontakte)的OAuth身份验证登录。登录后,在我的网站的特殊页面上,用户还可以指定他们的电子邮件地址以接收通知。显然,我想在发送任何通知之前验证地址。
我在Meteor文档和其他网站中找到的电子邮件验证标准说明使用accounts-password
包。没问题,我可以通过电子邮件更新代码拨打sendVerificationEmail()
,但问题是accounts-password
还增加了本地(非OAuth)注册的可能性。我的网站与OAuth提供商紧密相关,因此除了通过此OAuth提供商之外,我不希望有任何其他方式登录我的网站,因此我不希望在我的网站上有accounts-password
个包。或者至少我希望accounts-password
从用户的角度来看没有效果,除了发送验证电子邮件的可能性(没有注册按钮等)。
有没有办法在没有accounts-password
包的情况下发送验证电子邮件?或者禁用除电子邮件验证以外的所有accounts-password
功能?
当然,我可以完全手动实现电子邮件验证(生成令牌,发送电子邮件,设置验证路线),但如果有更标准的方法可以做到这一点,我最好坚持下去
答案 0 :(得分:1)
我终于通过将accounts-password.js
文件复制到server/lib
并删除了我不需要的所有代码来解决这个问题。我不喜欢这个解决方案,因为如果accounts-password
将被更新,我将不得不手动更新我的文件,但我认为没有其他方法可以做到这一点。
答案 1 :(得分:0)
我不确定您所描述的所有内容都是必需的。当然,代码将存在于服务器上,但如果您要添加accounts-password
并调用sendVerificationEmail()
,则无需说明您必须拥有它允许的注册和密码功能。您是否使用帐户-ui-unstyled来处理帐户的前端部分?如果是这样,您就不能让用户看到或使用您不希望他们拥有的功能。