2017-03-04 2 views
0

私はアプリケーションでmeteor-accountsとaccounts-passwordを使用しており、ユーザーがパスワードをリセットできるようにしたいと考えています。 「パスワードをリセット」リンクをMeteor application reset password

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

クリック生成します。現時点でのフォームのいずれかの任意のカスタマイズのための必要はありませんので、私は{{> atForm }}と共通のレイアウトや次を含む/lib/config.jsの設定ファイルを使用しました次のようなURL:

http://localhost:3000/#/reset-password/hMny_A8tdOpNubxtk8mC3BE0vYSJm35K80B2hwwV1CR 

はしかし、これらは、彼らが明らかにパスワードを変更しながら、アプリケーションのルートURLにリダイレクトすることで、完全に役に立ちません。ユーザーはこれらのリンクの1つをクリックした後にログインすることはできません。

{ "_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テンプレートとflowaccountを使用しています:flow-routing。

私はここで何かが欠落しているように見えますが、誰かがこの作業をする正しい方向に向けることができれば分かります。

+0

あなたはkadiraを使用していますか:ブレーズレイアウトですか? useraccounts:フロールーティングはそれに依存します。 – jordanwillis

+0

私は確かにそれを使用しています。 – knirirr

答えて

1

あなたの説明に基づいて、私はあなたがこの作業をするためにいくつかの鍵を失っていると思います。

まず、useraccounts:flow-routingは、ボックスからのルートを提供しないことに注意してください。

あり、デフォルトではありませんルートはありませんが、あなたは簡単に、内符号のためのルートを設定するにサインアップ、パスワードを忘れてしまった、パスワードをリセットし、パスワードを変更する、ことを考えるとAccountsTemplates.configureRoute

を使用してアカウントを登録することができますinfo、あなたは少なくともパスワードをリセットするためのデフォルトルートを設定する必要があります。

最も簡単な方法は、ルートコードを渡すコール(利用可能なルートコードは次のとおりサインイン、サインアップ、changePwd、forgotPwd、resetPwd、enrollAccount)を作ることです。

ここは例です。

AccountsTemplates.configureRoute('resetPwd'); 

デフォルトでは、ユーザーはfullPageAtFormにルーティングされ、新しいパスワードを再入力できます。

詳細については、useraccounts:flow-routing readmeをご覧ください。

+0

ありがとう!私は実際に彼が構成されたルートを持っていましたが、私が見逃していたのは、AccountTemplates.configureのdefaultLayoutとdefaultContentRegionでした。 – knirirr