電子メールフィールドをパスワードリセットフォームから削除する必要があります。私は、ユーザーがすでにメールを確認しているので、パスワードを忘れたときに再びユーザーが自分のメールを再入力することを嫌います。この質問は何度か尋ねられていますが、質問のほとんどはまだ答えられておらず、他の質問は機能していません。私はこの議論を終えましたが、非常に危険なコアファイルの編集を提案しています。だから誰もそれはまだ解決策だとわかったのですか?Laravel 5.5パスワードリセットフォームから電子メールフィールドを削除
0
A
答えて
2
これは、あなたが今、手動
$email="[email protected]";
$token=hash_hmac('sha256', Str::random(40), env("APP_KEY"));
DB::table('password_resets')->where('email', '=', $email)->delete();
DB::table('password_resets')->insert(
['email' => $email, 'token' => bcrypt($token)]
);
$token
をリセットトークンを作成する方法ですが、URLを経由して送信され、bcrypt($token)
がデータベースに保存されている暗号化されたトークンですトークンです。
トークンを取得した後は、単純に電子メールのフィールドを非表示にして、URLから$email
でフィールドを設定し、以前のものと同じになりますあなたの新しいパスワードのリセット]ページでhttp://website.com/password/newresetpage/{{$email}}/{{$token}}
のようなURLをユーザーに電子メールを送信することができます。
<form class="form-horizontal" role="form" method="POST" action="{{ route('password.request') }}">
{{ csrf_field() }}
<input type="hidden" name="token" value="{{ $token }}">
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label for="email" class="col-md-4 control-label">E-Mail Address</label>
<input id="email" type="email" class="form-control" name="email" value="{{$email}}" required hidden="true">
<div class="form-group{{ $errors->has('password') ? ' has-error' : '' }}">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password" required>
@if ($errors->has('password'))
<span class="help-block">
<strong>{{ $errors->first('password') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group{{ $errors->has('password_confirmation') ? ' has-error' : '' }}">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation" required>
@if ($errors->has('password_confirmation'))
<span class="help-block">
<strong>{{ $errors->first('password_confirmation') }}</strong>
</span>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Reset Password
</button>
</div>
</div>
</form>
関連する問題
- 1. 電子メールフィールドの検証
- 2. 電子メールvbaからテーブルを削除
- 3. FOSUserBundle - ユーザ名、パスワード、電子メールフィールドの検証
- 4. allauthのSignupFormクラスをオーバーライドすると、電子メールフィールドのラベルを削除できますか?
- 5. 電子メールスレッドからの、からの削除
- 6. アンドロイドエミュレータから電子メールアカウントを削除しますか?
- 7. C#を使用してOutlookフォルダから電子メールを削除
- 8. 電子メールインテント(EXTRA_EMAIL)からコンマを削除します
- 9. ウェブサイトから電子メールアドレスを削除する
- 10. 電子メールからデータを削除しない選択ボックス
- 11. HTML電子メールからデフォルトのAndroidパッディングを削除します
- 12. Maildirの電子メールメッセージをPHPから削除するには?
- 13. Umbracoフォーム - 電子メールのDatepicker日付から時間を削除
- 14. SharePoint Designer 2007:電子メールから秒フィールドを削除します
- 15. 電子メールとパスワードから空白を削除します。EditText
- 16. 電子メール本文からヘッダー文字を削除する
- 17. 電子メールからテキストとリンクを削除する
- 18. Facebook SDK:電子メールフィールド返信時null(「電子メール」アクセス許可セットあり)
- 19. 子を子から削除する
- 20. チェックボックスをオンにした場合、電子メールフィールドは不要です
- 21. 電子メールフィールドに空でない制約を追加する
- 22. SQLは電子メールフィールドで顧客を1回取得
- 23. Laravelディレクトリをパブリックから削除する
- 24. 電子メールフィールドにメタデータが自動入力されない
- 25. 電子メールフィールドの更新と妥当性確認
- 26. Salesforce.comはどのように電子メールフィールドを検証しますか?
- 27. laravelからパブリックワードを削除する方法URL(Laravel 5.1)
- 28. 子ノードをXMLから削除する
- 29. QDialog :: layoutから子を削除する
- 30. 子グリッドビューから列を削除する
リセットトークンを生成する方法がわかっている場合、トークンとemailidまたはトークンとユーザーIDの2つの変数を渡すことができるカスタムURLをユーザーに送信できます。 http://website.com/password/customreset/ {email}/{token} –
これはセキュリティ機能として行われたと思います。トークンはパスワードと同様にハッシュされ、識別子(電子メール)を順番に必要としますアプリケーションがデータベース内でそれをどのハッシュと比較するかを知ることができます。電子メールにあるリンクをクリックするだけで十分な確認ができたら、トークンをハッシュする必要はありません。トークンを設定してチェックする機能をオーバーライドして、無作為なトークンを生成するようにしてください。コアファイルを編集しないでください。絶対に必要な場合は、拡張して上書きしてください。 – Chris