2011-09-26 13 views
3

で永続的な「認可」ヘッダの種類を送信するためにどのように私は知らないが、私は私が知っていることは決してないだろう:)それが可能だ場合はPHP

を私はexact problem discuted in this topicを持って聞いていない場合。それは:私はいくつかのフォルダにいくつかの静的ファイルを持っています、そして、私はそのコンテンツを見るためにいくつかのユーザだけを望みます。ユーザーは以前のログインから来ています。

いくつかの解決策がそのトピックで説明されていますが、別の解決策が考えられました。私はPHPで許可HTTPヘッダーを送信することができれば、ユーザーのユーザー名とパスワードが含まれており、それはsubsequents要求では辛抱強く保つことができます(私はそれがApache認証で起こると思います)。以前のログイン中にそのヘッダーを送信し、ユーザーがそのディレクトリにアクセスしようとすると、.htaccessが有効なユーザーであるかどうかを確認します。

私はPHPでAuthorizationヘッダを送信しようとしている:

header('Authorization: Basic '.base64_encode($USERNAME.':'.$PASSWORD).PHP_EOL); 

しかし、彼らは一つのリクエストのためにのみ存在しています。

.htaccessでは、固有の `Require user USERNAME 'を持つことができないことを確認しました。したがって、ログインプロセスで使用されている資格情報と同じ資格情報を格納するhtpasswdファイルを作成する必要があると思います。その後、通常の認証設定の作成(基本的にまたはダイジェスト):

AuthType Basic 
AuthName "Restricted Files" 
AuthUserFile /path/to/htpasswd/file 
Require user USERNAME 

は、私は別の可能な解決策を考えている、事前に

+1

http://php.net/manual/en/features.http-auth.php – hakre

+0

私はそれを読んだが、答えは見つからなかった。 –

答えて

1

を認証HTTPヘッダーを送信することができればあなたは、Apacheによって処理BasicまたはダイジェストHTTP真偽を持つことができ、シンプルで「有効なユーザーを必要とします」。 Apacheはmod_authのバリエーションをたくさん実装できません。this pageのmod_auth *を確認してください。 したがって、あなたはauthenticate on your databaseに、またはmod_authnz_externalで提供するカスタムコードで認証を実行することもできます。

外部スクリプトのサポートは、(最初​​の認証、基本的にはデフォルトのクッキーベースのセッションで発生するものである、(各要求されたリソースのために全体の真偽をやり直し防ぐために)あなたはキャッシュレベルとセッション真偽を実装できるように良いですPHPSESSIDを転送するだけで、セッションが存在することを確認します)。

0

、ありがとうございました。私は、PHPで

あなたは可能性がない

+0

ああ、生きていく:) –

関連する問題