Um die Autorisierung mit captcha vorzubereiten, benötigen wir
nginx selbst und seine Plugins
verschlüsselte Sitzung ,
Formulareingabe ,
ctpp2 ,
Echo ,
LDAP ,
Header-More ,
Auth_Request ,
Set-Misc . (Ich habe Links zu meinen Gabeln angegeben, da ich einige Änderungen vorgenommen habe, die bisher nicht in die ursprünglichen Repositorys übernommen werden konnten. Sie können auch das
vorgefertigte Image verwenden .)
Zunächst setzen wir
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Deaktivieren Sie als Nächstes für alle Fälle den Autorisierungsheader
more_clear_input_headers Authorization;
Jetzt schützen wir alles mit Genehmigung
auth_request /auth; location =/auth { internal; subrequest_access_phase on;
Für autorisierte Benutzer zeigen wir Inhalte aus ihrem Ordner
location / { alias html/$remote_user/; }
Und wenn keine Autorisierung vorliegt, zeigen wir das Autorisierungsformular mit Captcha
error_page 401 = @error401; location @error401 { set_escape_uri $request_uri_escape $request_uri;
login.html
<html> <body> <form method="post"> <input type="hidden" name="csrf" value="<TMPL_var csrf>" /> username: <input type="text" name="username" placeholder="Enter User Name..." /><br /> password: <input type="password" name="password" /><br /> captcha: <img src="/captcha?csrf=<TMPL_var csrf>"/><input type="text" name="captcha" autocomplete="off" /><br /> <input type="submit" name="submit" value="submit" /> </form> </body> </html>