Untuk menyiapkan otorisasi dengan captcha, kita perlu
nginx sendiri dan
pluginsnya sesi terenkripsi ,
form-input ,
ctpp2 ,
echo ,
ldap ,
header-more ,
auth_request ,
set-misc . (Saya memberi tautan ke garpu saya, karena saya membuat beberapa perubahan yang tidak dapat didorong ke repositori asli sejauh ini. Anda juga dapat menggunakan
gambar yang sudah jadi .)
Untuk memulai, mari kita atur
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
Selanjutnya, untuk berjaga-jaga, nonaktifkan header otorisasi
more_clear_input_headers Authorization;
Sekarang kami melindungi semuanya dengan otorisasi
auth_request /auth; location =/auth { internal; subrequest_access_phase on;
Untuk pengguna yang berwenang, kami menampilkan konten dari folder mereka
location / { alias html/$remote_user/; }
Dan dengan tidak adanya otorisasi, kami menunjukkan formulir otorisasi dengan 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>