電子メールフィールドをパスワードリセットフォームから削除する必要があります。私は、ユーザーがすでにメールを確認しているので、パスワードを忘れたときに再びユーザーが自分のメールを再入力することを嫌います。この質問は何度か尋ねられていますが、質問のほとんどはまだ答えられておらず、他の質問は機能していません。私はこの議論を終えましたが、非常に危険なコアファイルの編集を提案しています。だから誰もそれはまだ解決策だとわかったのですか?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. Laravel 5.4電子メールフィールドのないパスワードのリセット
- 4. PhpMailで電子メールフィールドが空です
- 5. Coldfusionでの電子メールフィールドの検証
- 6. FOSUserBundle - ユーザ名、パスワード、電子メールフィールドの検証
- 7. allauthのSignupFormクラスをオーバーライドすると、電子メールフィールドのラベルを削除できますか?
- 8. Laravel - 認証のためのデータベースの電子メールフィールドの認証を確認する
- 9. 入れ子json laravel 5.5
- 10. Laravel 5.5電子メールとパスワードのフィールドが必要です
- 11. Laravel 5.5電子メールの確認とモデル調整
- 12. 電子メールスレッドからの、からの削除
- 13. アンドロイドエミュレータから電子メールアカウントを削除しますか?
- 14. sql:電子メールフィールドに何かを追加/追加
- 15. Laravel 5.5のファイルを削除しています
- 16. Laravel 5.5編集後にカテゴリを削除できません
- 17. C#を使用してOutlookフォルダから電子メールを削除
- 18. SharePoint Designer 2007:電子メールから秒フィールドを削除します
- 19. 電子メールとパスワードから空白を削除します。EditText
- 20. HTML電子メールからデフォルトのAndroidパッディングを削除します
- 21. vba送信済みフォルダから電子メールを削除
- 22. Opencart 2.1.0.2電子メール請求書からIPを削除
- 23. 電子メールアドレスの一部から文字を削除する
- 24. 「電子メールアドレス」フィールドをストライプチェックアウトから削除します
- 25. RichTextBoxは電子メールヘッダーから改行を削除します
- 26. Woocommerceは注文電子メールから行を削除します
- 27. 電子メールからデータを削除しない選択ボックス
- 28. AWS SES Suppression Listから電子メールを削除する
- 29. 電子メールからテキストとリンクを削除する
- 30. Maildirの電子メールメッセージをPHPから削除するには?
リセットトークンを生成する方法がわかっている場合、トークンとemailidまたはトークンとユーザーIDの2つの変数を渡すことができるカスタムURLをユーザーに送信できます。 http://website.com/password/customreset/ {email}/{token} –
これはセキュリティ機能として行われたと思います。トークンはパスワードと同様にハッシュされ、識別子(電子メール)を順番に必要としますアプリケーションがデータベース内でそれをどのハッシュと比較するかを知ることができます。電子メールにあるリンクをクリックするだけで十分な確認ができたら、トークンをハッシュする必要はありません。トークンを設定してチェックする機能をオーバーライドして、無作為なトークンを生成するようにしてください。コアファイルを編集しないでください。絶対に必要な場合は、拡張して上書きしてください。 – Chris