هذه الجوهرة عبارة عن نقطة نهاية Rack بسيطة توفر مصادقة Flickr في تطبيق الويب الخاص بك. ما عليك سوى تثبيته على تطبيق الويب الخاص بك وسيقوم ببقية العمل.
هذه الجوهرة هي بديل لـ omniauth-flickr. كلاهما يقدم نتائج مماثلة، والفرق الرئيسي هو أن flickr-login
أخف بكثير. إذا كنت لا تهتم بذلك، فإنني أقترح بشدة أن تستخدم omniauth-flickr
، لأن omniauth
هو معيار رائع للمصادقة.
إذا كنت تنوي استخدام رمز الوصول الخاص بالمستخدم للتواصل مع واجهة برمجة التطبيقات الخاصة بـ Flickr، فستحتاج إلى استخدام إحدى هاتين الجوهرتين:
ضعه في ملف Gemfile الخاص بك:
gem "flickr-login" , require : "flickr/login"
وقم بتشغيل bundle install
.
يجب أن تكون بحوزتك مفتاح واجهة برمجة التطبيقات (API) والسر المشترك. إذا لم تكن تمتلكها بعد، يمكنك التقدم بطلب للحصول عليها هنا. في الإعداد، ما عليك سوى استبدال API_KEY
و SHARED_SECRET
بالقيم الحقيقية.
هذا مثال لكيفية الحصول على الجوهرة في Rails 3 (ربما تكون مشابهة في Rails 2).
# config/application.rb
module YourApp
class Application < Rails :: Application
# ...
config . flickr_login = Flickr :: Login . new "API_KEY" , "SHARED_SECRET"
# ...
end
end
# config/routes.rb
YourApp :: Application . routes . draw do
# ...
flickr = YourApp :: Application . config . flickr_login
flickr_endpoint = flickr . login_handler ( return_to : "/any-path" )
mount flickr_endpoint => '/login' , as : :login
# ...
end
في سيناترا يتم وضع هذا في config.ru
الخاص بك، والذي يبدو على الأرجح كما يلي:
# config.ru
require './app'
run Sinatra :: Application
الآن يمكنك تركيب نقطة نهاية الحامل بهذا الشكل
# config.ru
require './app'
require 'flickr/login'
flickr = Flickr :: Login . new "API_KEY" , "SHARED_SECRET"
flickr_endpoint = flickr . login_handler ( return_to : "/any-path" )
use Rack :: Session :: Cookie
run Rack :: URLMap . new "/" => Sinatra :: Application ,
"/login" => flickr_endpoint
هذا كل شيء. ما عليك سوى تمكين الجلسات في app.rb
الخاص بك:
# app.rb
enable :sessions
ستتم إعادة توجيه المستخدم أولاً إلى Flickr للموافقة على طلبك. تتم بعد ذلك إعادة توجيه المستخدم مرة أخرى إلى تطبيقك (الرجوع إلى المسار المحدد بـ :return_to
)، مع ملء session[:flickr_access_token]
session[:flickr_user]
.
session[:flickr_access_token]
– مجموعة من رمز الوصول وسر الوصولsession[:flickr_user]
– تجزئة المعلومات حول المستخدم المصادق عليه الخيارات المتاحة لـ Flickr::Login
هي:
:return_to
- حيث تتم إعادة توجيه المستخدم بعد المصادقة (الإعداد الافتراضي هو "/"
):site
- نقطة نهاية واجهة برمجة التطبيقات (API) المستخدمة (الإعداد الافتراضي هو http://www.flickr.com/services) يمكنك أيضًا تعيين الأذونات التي تطلبها من المستخدم. يمكنك القيام بذلك عن طريق تمرير معلمة GET perms
في عنوان URL. على سبيل المثال، الانتقال إلى http://localhost:9393/login?perms=delete
سيطلب من المستخدم أذونات "الحذف". يمكنك أن تطلب من المستخدم أذونات "القراءة" أو "الكتابة" أو "الحذف".
تضيف وحدة Flickr::Login::Helpers
هذه الطرق إلى تطبيقك:
#flickr_user
(Hash) – المعلومات المتعلقة بالمستخدم الذي قام بالمصادقة للتو#flickr_access_token
(Array) - رمز الوصول والسر#flickr_clear
– يمسح الجلسة التي تم ملؤها بعد المصادقة، ويسجل خروج المستخدم بشكل فعالفي Rails، يمكنك تضمين الوحدة في وحدة التحكم الخاصة بك:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
في سيناترا يمكنك فقط استدعاء طريقة helpers
:
helpers Flickr :: Login :: Helpers
هذه الجوهرة هي تقريبًا نسخة مباشرة من جواهر تسجيل الدخول إلى تويتر وتسجيل الدخول إلى @mislav .
معهد ماساتشوستس للتكنولوجيا