「パスワードを忘れた」機能を実行しようとしています。私の問題は、Doctrine クエリを実行してパスワードを電子メールに送信しようとすると、暗号化されたパスワードが取得されることです。DoctrineGuard にはこの機能がなく、登録とログインの機能しかない Web をいくつか見ています。
本当ですか?
この場合、パスワードを記憶する機能をどのように行うことができますか?
ありがとう
「パスワードを忘れた」機能を実行しようとしています。私の問題は、Doctrine クエリを実行してパスワードを電子メールに送信しようとすると、暗号化されたパスワードが取得されることです。DoctrineGuard にはこの機能がなく、登録とログインの機能しかない Web をいくつか見ています。
本当ですか?
この場合、パスワードを記憶する機能をどのように行うことができますか?
ありがとう
バージョン 5.0.0 から、偉大な sfDoctrineGuard-Plugin にはパスワード忘れモジュールが組み込まれています。しかし、対応するreadmeには、それを使用する方法がまばらな情報があります:))
[TODO: document the forgot password feature]
パスワードを忘れた場合の機能を使用するには、次の手順を実行します (プラグインが既にインストールされており、通常のサインインが機能していると仮定します)。
モジュールを有効にしますsettings.yml
(そして、使用中の i18n を有効にします):
all:
.setting:
enabled_modules: [default, sfGuardAuth, sfGuardForgotPassword]
i18n: true
routing.ymlにルートを追加します (自動追加はうまくいきませんでした)。また、リダイレクトに使用されるルール @homepage が含まれていることを確認してください。
sf_guard_forgot_password_change:
url: /forgot_password/:unique_key
class: sfDoctrineRoute
options: { model: sfGuardForgotPassword, type: object }
param: { module: sfGuardForgotPassword, action: change }
requirements:
sf_method: [get, post]
sf_guard_forgot_password:
url: /forgot_password
param: { module: sfGuardForgotPassword, action: index }
メール送信を有効にします( prod/dev 環境factories.yml
の違いに注意してください。公式ドキュメントも参照してください):
all:
mailer:
class: sfMailer
param:
logging: %SF_LOGGING_ENABLED%
charset: %SF_CHARSET%
delivery_strategy: realtime
transport:
class: Swift_SmtpTransport
param:
host: smtp.example.com
port: 25
encryption: ~
username: test@example.com
password: p4ssw0rd
送信者のアドレスを追加しますapp.yml
(およびルーティングは自動的に機能しません)。app.yml と factory.yml のアドレスは同じでなければなりません。そうしないと、smtp-server がエラーを出す可能性があります:
all:
sf_guard_plugin:
routes_register: true
default_from_email: test@example.com
をタップしapps/your_app/modules/sfGuardForgotPassword/config/security.yml
て、ログアウト中にリクエスト フォームにアクセスできるようにします。
secure:
is_secure: true
index:
is_secure: false
change:
is_secure: false
でキャッシュをクリアし./symfony cc
ます。
今すぐパスワードを忘れてください。
パスワードはハッシュ化されてからデータベースに保存されるため、保存されたパスワードを回復することはできません。
「パスワード紛失」機能を作成するには、いくつかの方法があります。
正しく読んだことを思い出すと、sfDoctrineGuard には必要なことを行う "getPassword" メソッドがありません... 暗号化されていないパスワードを取得します。
私は DuoSRX の最初の推奨事項を使用しています。新しいパスワードを作成し、$user->setPassword (ソルティングとハッシュを自動的に処理します) で保存し、ユーザーにメールで送信します。次に、ユーザーはログインして新しいパスワードを作成するように勧められます。