どのユーザーが招待状に応答したかを知るために、暗号化された電子メールでユーザーにメールで招待状を送信します。以下のような何か:Laravelの内蔵暗号化機能でランダムエラーを解読
こんにちは、学習を開始するには、このリンクをクリックしてください:https://example.org/start-learning?e=fwTreaN0WybffXdDfZZUNYB3FTFfZObCb7QFF5C4AFJvTjXabIPtRfcoXLkFYMUvD4FIZsmrDdEFN2OPKcTrAOSQLZfuKdfwcic1WtBxWSXWR1GEJD6we213A3BEPBpca0BxaaQ4GGMPFeRyXp6fPrG9WnTgWogwXUcnVtdwSEEdNHGuZsClTxR2AtD2JZN8VAEsRQKpFFShEDR2SET4KxGhLGM3M0FdDelrJtO8KXS2YRaddH==
暗号化された電子メールは、上記の長い文字列です。次に、この$url
このようなメールテンプレートに追加され
$url = 'https://example.org/start-learning?e=' . encrypt($this->to[0]['address']);
:私はMailable
クラスにこのようなメールをコード
<a href="{{$url}}>click me<a>
そして、ユーザがコントローラへのリンク、そのルートをクリックしたときとコントローラはペイロードを復号化します。
decrypt($request->input('e'));
次に、リンクをクリックする人の約99%が動作します。しかし、約1%のために、それは動作しません、私は解読エラーがあります。そして私は理由を知らない。これは、暗号化と復号化を行うLaravelアプリケーションと同じです。 このような奇妙な行動の理由はありますか?
サイドノート:私はdecryptが常に動作することを知っており、ランダムな動作をしていません(私は10000エントリでテストしました。私が理解していないメールプロセスには別のものが必要です。
メッセージIDをユーザーに送信し、メッセージIDを要求したときにサーバーから取得し、メッセージを暗号化して取得要求で取得するのではなく、 –
このアプリケーションは何千ものメールを送信します。ユーザーがアプリケーションを使用する前に情報を保存することは望ましくありません。したがって、ユーザーがリンクをクリックしていくつかのことを行う場合にのみ参加を作成します。 –
urlencode()とurldecode()を使用しようとしましたか? – dparoli