0

私の目標は、誰かが通常「保護された」ビューを一時的に表示できる特別な URL を生成できるようにすることです。実際、ユーザーがページを離れた場合、付与された一時的な認証は取り除かれる必要があります。

基本的に問題は、自分の Web サイトに、通常はログインを要求して保護したいコンテンツがあることです。ただし、特定のアセットへの一時的なアクセスを許可し、ログインを必要としないようにしたいと考えています。

ユーザーを自動的に認証するクエリ文字列を含む URL を使用する必要がありますか? または、代わりに、認証をまったく必要としないそのアセットを含む別のページを生成する必要がありますか?

編集:生成されたリンクには複数の人がアクセスできる必要があることを忘れていました。つまり、アクセス回数で制限することはできませんが、期間または手動で強制的に期限切れになるまで制限することはできません。

4

2 に答える 2

0

のようなデータベース テーブルを作成してtokens、1 つのリクエストに対してのみ有効な一意のアクセス トークンを保存できます。アクションでは、このトークンを URL パラメーターにすることができます。URL にトークンが存在しない場合、またはトークンが DB テーブルに見つからなかった場合、アクセスは拒否されます。トークンが見つかった場合は、DB から削除してアクションを実行します。

この種の 1 回限りのアクセス権を誰かに与えたいときはいつでも、そのようなトークンを作成して DB に保存します。トークンは、ランダムな MD5 ハッシュである可能性があり、md5(mt_rand().mt_rand()). 次に、そのトークンをパラメーターとして使用して URL を作成し、それをユーザーに渡すことができます。

システムを強化して、テーブルに有効期限を追加することもできtokensます。次に、有効期限が将来の場合にのみアクセスを許可します。

于 2013-06-12T06:41:28.200 に答える