【问题标题】:Meteor application reset passwordMeteor 应用程序重置密码
【发布时间】:2017-07-24 22:08:33
【问题描述】:

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

AccountsTemplates.configure({
    showForgotPasswordLink: true,
    enablePasswordChange: true,
    sendVerificationEmail: true,
    enforceEmailVerification: true,
    confirmPassword: true,
    showResendVerificationEmailLink: true,
    continuousValidation: true,
    privacyUrl: 'privacy',
 });

单击“重置密码”链接会生成如下所示的 URL:

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 } ] }

其他一切都有效(例如,使用确认电子邮件注册)。我正在使用 Blaze 模板和流路由器,包括用户帐户:流路由。

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

【问题讨论】:

  • 你也在使用 kadira:blaze-layout 吗? useraccounts:flow-routing 取决于它。
  • 我确实在使用它。

标签: meteor meteor-accounts


【解决方案1】:

根据您的解释,我认为您缺少一些关键的东西来使其正常工作。

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

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

鉴于该信息,您至少需要配置重置密码的默认路由。

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

这是一个例子。

AccountsTemplates.configureRoute('resetPwd');

默认情况下会将用户路由到 fullPageAtForm,以便他们可以重新输入新密码。

查看 useraccounts:flow-routing readme 了解更多详情。

【讨论】:

  • 谢谢!事实上,我确实配置了他的路由,但似乎我缺少的是 AccountTemplates.configure 中的 defaultLayout 和 defaultContentRegion。
猜你喜欢
  • 1970-01-01
  • 2017-12-24
  • 2015-02-09
  • 1970-01-01
  • 2018-01-01
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多