عاطي نشر 28 نوفمبر 2015 أرسل تقرير نشر 28 نوفمبر 2015 أريد أن أحميّ تطبيقي المبني ب Sinatra عن طريق استيثاق HTTP فكيف يُمكن القيّام بذلك؟ 1 اقتباس
0 عبدالهادي الديوري نشر 28 نوفمبر 2015 أرسل تقرير نشر 28 نوفمبر 2015 يُمكنك أن تطبّق الاستيثاق البسيط بالـ HTTP بطريقتين:الأولى، فقط بإضافة وسيطة Rack::Auth::Basic في سلسلة معالجة الطّلبات مع تعليمة use :require 'sinatra' use Rack::Auth::Basic, "Restricted Area" do |username, password| username == 'admin' and password == 'admin' end get '/' do "You're welcome" end get '/foo' do "You're also welcome" endالمثال أعلاه يقوم بحجب جميع العروض والمسارات إلّا عند إدخال اسم المُستخدم "admin" و كلمة المرور "admin".الطّريقة الثّانيّة، تصلح إذا كنت ترغب بحماية عناوين URL معيّنة فقط في التّطبيق، أو إذا كنت ترغب بجعل الاستيثاق أكثر تعقيدا، والطّريقة تكون باستعمال شيفرة كالتّالي:require 'sinatra' helpers do def protected! return if authorized? headers['WWW-Authenticate'] = 'Basic realm="Restricted Area"' halt 401, "Not authorized\n" end def authorized? @auth ||= Rack::Auth::Basic::Request.new(request.env) @auth.provided? and @auth.basic? and @auth.credentials and @auth.credentials == ['admin', 'admin'] end end get '/' do "يُمكن للجميع أن يرى هذه الصّفحة" end get '/protected' do protected! "مرحبا بك، لقد قمت بالاستيثاق بنجاح" end 1 اقتباس
السؤال
عاطي
أريد أن أحميّ تطبيقي المبني ب Sinatra عن طريق استيثاق HTTP فكيف يُمكن القيّام بذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.