لإعداد تفويض مع captcha ، نحتاج إلى
nginx نفسه
ومكوناته المشفرة للجلسة ،
وإدخال النماذج ، و
ctpp2 ، و
echo ،
والرؤوس أكثر ، و
auth_request ، و
auth_basic ، و
set-misc . (لقد قدمت روابط إلى شوكة بلدي ، لأنني أجريت بعض التغييرات التي تعذر دفعها إلى المستودعات الأصلية حتى الآن. يمكنك أيضًا استخدام
الصورة الجاهزة .)
للبدء ، دعنا نضبط
encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
بعد ذلك ، فقط في حالة تعطيل رأس التفويض
more_clear_input_headers Authorization;
الآن نحن نحمي كل شيء بإذن
auth_request /auth; location =/auth { internal; subrequest_access_phase on;
للمستخدمين المصرح لهم ، نعرض المحتوى من مجلدهم
location / { alias html/$remote_user/; }
وفي حالة عدم وجود ترخيص ، نعرض نموذج التفويض باستخدام 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>