ホームページ >バックエンド開発 >PHPチュートリアル >laravelでファイルへの許可されたアクセスを実装するにはどうすればよいですか?
laravelのpublicディレクトリの下にresディレクトリがあり、その中の写真にアクセスする際にユーザーに権限があるかどうかを確認したいのですが、ユーザーはアドレスを入力するとファイルに直接アクセスし、認証を経ません。認証ミドルウェア
例:図に示すように、public の下の res ディレクトリに画像を置きます
リーリー
訪問中に写真を直接見ることができます。ログインしたユーザーのみが写真を閲覧できるようにするにはどうすればよいですか?
これに似ています
リーリー
具体的な実装原則を教えていただけますか?
例:図に示すように、public の下の res ディレクトリに画像を置きます
ルーティング:
訪問中に写真を直接見ることができます。ログインしたユーザーのみが写真を閲覧できるようにするにはどうすればよいですか?
Baidu ディスク内の画像へのリンクを見てみました。
リーリー
画像ごとにハッシュ値を生成し、ルーティングとルーティング内のパラメータを元に検証し、渡した後にハッシュを元にファイルを返すようです。
/Img/locaiton?user=xxx&name=iiii などのコントローラーに画像アクセスを設定しない限り、次のように ImgController.php にアクセスすると、画像を読み取って自分で表示するだけで済み、自分で認証を追加することもできます (注)写真を /public の下に置かず、public と同じディレクトリに置きます)
index.phpを除いて、public/内の他のファイルは純粋に静的ファイルであり、Laravelルーティングにはまったく含まれません
Baidu Netdisk のハッシュ パラメーターについては、読み取りファイルのアドレスと有効期限を任意に追加できます。
WebServer を使用して書き換えを行い、コントローラー php を通過し、このコントローラーで Auth:check を実行します。
アクセス制御が必要なファイルはパブリックディレクトリではなくストレージディレクトリに配置し、外部から直接アクセスできないようにする必要があります。
訪問者の権限を検証するコントローラーを実装できます。一貫性がある場合は、HTTP トランスポート ストリームを介して画像バイナリ データを必要な形式で出力できます。
Laravel (正確には Symfony) はすでにこのタイプのレスポンスを提供しています。ドキュメントを読んで対応する API を見つけることができます。
あなたが知っている写真の許可確認とホットリンク防止方法のほとんどはこのようなものです。
上。