Meteor应用程序重置密码

Meteor应用程序重置密码,meteor,meteor-accounts,Meteor,Meteor Accounts,我正在应用程序中使用meteor帐户和帐户密码,希望用户能够重置其密码。目前不需要对任何表单进行任何定制,因此我使用了一个带有{{>atForm}的通用布局和一个/lib/config.js的配置文件,其中包含以下内容: AccountsTemplates.configure({ showForgotPasswordLink: true, enablePasswordChange: true, sendVerificationEmail: true, enforc

我正在应用程序中使用meteor帐户和帐户密码,希望用户能够重置其密码。目前不需要对任何表单进行任何定制,因此我使用了一个带有
{{>atForm}
的通用布局和一个
/lib/config.js
的配置文件,其中包含以下内容:

AccountsTemplates.configure({
    showForgotPasswordLink: true,
    enablePasswordChange: true,
    sendVerificationEmail: true,
    enforceEmailVerification: true,
    confirmPassword: true,
    showResendVerificationEmailLink: true,
    continuousValidation: true,
    privacyUrl: 'privacy',
 });
http://localhost:3000/#/reset-password/hMny_A8tdOpNubxtk8mC3BE0vYSJm35K80B2hwwV1CR
单击“重置密码”链接可生成如下URL:

AccountsTemplates.configure({
    showForgotPasswordLink: true,
    enablePasswordChange: true,
    sendVerificationEmail: true,
    enforceEmailVerification: true,
    confirmPassword: true,
    showResendVerificationEmailLink: true,
    continuousValidation: true,
    privacyUrl: 'privacy',
 });
http://localhost:3000/#/reset-password/hMny_A8tdOpNubxtk8mC3BE0vYSJm35K80B2hwwV1CR
然而,这些都是完全无用的,因为它们重定向到应用程序的根URL,同时明显地更改了密码;因此,用户在单击其中一个链接后无法登录。单击某个用户帐户后,该用户帐户如下所示:

{ "_id" : "LcQSCiG7ib5F49tPN", "createdAt" : ISODate("2017-03-04T21:33:57.050Z"), "services" : { "password" : { "bcrypt" : "<redacted>", "reset" : { "token" : "l4HdPzoKkeIUdUeUC5x9NmUiQMnRsY1MRLvYk6Wvqw1", "email" : "<redacted>", "when" : ISODate("2017-03-04T21:51:32.171Z"), "reason" : "reset" } }, "email" : { "verificationTokens" : [ { "token" : "K88HXjzI2UO8vARZv6l6Qf0mUJ1hstInnrJK-8hayzk", "address" : "<redacted>", "when" : ISODate("2017-03-04T21:33:57.072Z") }, { "token" : "NMGLelAWKcCFglRj7aQvZoP85N-_YdWJZ2FcPWu5U8D", "address" : "<redacted>", "when" : ISODate("2017-03-04T21:52:55.930Z") } ] }, "resume" : { "loginTokens" : [ ] } }, "emails" : [ { "address" : "<redacted>", "verified" : false } ] }
{u id:{LcQSCiG7ib5F49tPN”,“createdAt:“ISODate”(“2017-03-04T21:33:57.050Z”),“services:{”password:“{”bcrypt:“reset:“reset:“{”token:“l4hdpzokkeiudueuduec5x9nmuiqmnrsy1mrlvyk6wvqw1”,“email:“when:”ISODate:“2017-03-04T21:51:32.171Z”),“reason:“reset”,“email:{”verificationkens:{:“verificationkens:”“K88HXJZI2UO8VARZV6QF0MUJ1HSTINRJK-8hayzk”,“地址:”,“时间”:ISODate(“2017-03-04T21:33:57.072Z”),{“令牌”:“NMGLelAWKcCFglRj7aQvZoP85N-YDWJZ2FCPWU5U5U8D”,“地址:”,“时间”:ISODate(“2017-03-04T21:52:55.930Z”),“简历:{loginTokens[],“电子邮件:”,“地址:”,“验证错误”}
其他一切都正常(比如用确认邮件注册)。我使用Blaze模板和Flow Router,包括useraccounts:Flow routing


我似乎在这里遗漏了一些东西,如果有人能为我指出正确的工作方向,我将不胜感激。

根据你的解释,我认为你遗漏了一些使这项工作正常进行的关键因素

首先,请记住useraccounts:flow路由不提供开箱即用的路由

默认情况下不提供路由,但您可以轻松配置用于登录、注册、忘记密码、重置密码、更改密码、使用AccountsTemplates.configureRoute注册帐户的路由

根据这些信息,您至少需要为重置密码配置默认路由

最简单的方法是让呼叫只传入一个路由代码(可用的路由代码有:signIn、signUp、changePwd、forgotPwd、resetPwd、enrollAccount)

这里有一个例子

AccountsTemplates.configureRoute('resetPwd');
默认设置将用户路由到fullPageAtForm,以便他们可以重新输入新密码


查看useraccounts:flow routing了解更多详细信息。

您也在使用kadira:blaze布局吗?useraccounts:flow routing取决于它。我确实在使用它。谢谢!事实上我已经配置了路由,但我似乎缺少AccountTemplates.configure中的defaultLayout和defaultContentRegion。