3

これは「失われたケース」かもしれませんが、DocPad によって生成された 1 つまたは複数のページをパスワードで保護することは可能ですか?

protected = trueページのメタデータ セクションで発言できるようにするプラグインまたは何かを作成することは可能ですか?

または、ページを保護するために .htaccess などを使用する必要がありますか?

4

3 に答える 3

5

node.js ホスティング プロバイダーでホストすることを計画している場合は、次の要点を使用できます: https://gist.github.com/4557006

serverExtendイベントを使用して、新しい Express.js ミドルウェアを追加するという考え方です。イベント経由で追加されたserverExtendミドルウェアは、docpad のミドルウェアが追加される前に追加されるため、これは、この認証レイヤーの理想的な場所であり、カスタム ルート/ミドルウェアなどの他のほとんどのユース ケースにも適しています。要求されているドキュメントが保護されているかどうか、そうでない場合はミドルウェア チェーンを下っていきます (おそらく docpad ミドルウェアにアクセスして正常にレンダリングされます)、または保護されたドキュメントである場合は、express basicAuth ミドルウェアに転送します。

于 2013-01-17T16:04:33.600 に答える
2

protected = trueページのメタデータで実際に宣言し、protectedPages という名前のコレクションを に持つことができると思いますdocpad.coffee

collections:
  protectedPages: (database) ->
    database.findAllLive({protected: true})

そして、.htaccess.eco次のようなファイルを作成します。

AuthUserFile /full/path/to/.htpasswd
AuthType Basic
AuthName "Protected area"

<% for document in @getCollection('protectedPages').toJSON(): %>
  <Files "<%= document.url %>">
    Require valid-user
  </Files>

<% end %>

これを .htaccess ファイルを生成するプラグインに変換するのは簡単です。例として、サイトマップ プラグインを使用できます。

于 2013-01-15T11:29:23.837 に答える