2017-03-04 108 views
0

我在应用程序中使用流星帐户和帐户密码,并希望用户能够重置其密码。目前没有必要对任何形式的任何定制,所以我使用{{> 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根为应用程序,同时明显改变密码完全无用的;用户因此在点击其中一个链接后无法登录。单击一个后,用户帐户如下所示:

{ "_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模板和流量路由器,包括useraccounts:流程路由。

我似乎失去了一些东西,并希望它如果有人能够指出我在正确的方向得到这个工作。

+0

你是否也在使用kadira:blaze-layout呢? useraccounts:流路由取决于它。 – jordanwillis

+0

我的确在使用它。 – knirirr

回答

1

根据你的解释,我认为你错过了一些关键的事情来得到这个工作。

首先,记住useraccounts:流量路由不提供路由开箱。

没有默认提供的路线,但你可以使用AccountsTemplates.configureRoute

鉴于轻松地配置路线标志,注册,忘记密码,重置密码,修改密码,帐号注册info,您至少需要配置重置密码的默认路由。

最简单的方法是让呼叫仅通过一个路由代码(可用的路由代码是:signIn,signUp,changePwd,forgotPwd,resetPwd,enrollAccount)。

下面是一个例子。

AccountsTemplates.configureRoute('resetPwd'); 

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

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

+0

谢谢!事实上我确实有他配置的路线,但似乎我缺少的是来自AccountTemplates.configure的defaultLayout和defaultContentRegion。 – knirirr