Gem นี้เป็นจุดสิ้นสุดของ Rack ธรรมดาที่ให้การรับรองความถูกต้องของ Flickr ในเว็บแอปพลิเคชันของคุณ คุณเพียงแค่ติดตั้งมันบนเว็บแอปพลิเคชันของคุณและมันจะทำงานที่เหลือ
อัญมณีนี้เป็นทางเลือกแทน omniauth-flickr ทั้งสองอย่างให้ผลลัพธ์ที่คล้ายคลึงกัน ข้อแตกต่างหลัก ๆ ก็คือ flickr-login
นั้นมีน้ำหนักเบากว่ามาก หากคุณไม่สนใจเรื่องนั้น ฉันขอแนะนำอย่างยิ่งให้คุณใช้ omniauth-flickr
เนื่องจาก omniauth
เป็นมาตรฐานที่ยอดเยี่ยมสำหรับการตรวจสอบสิทธิ์
หากคุณตั้งใจจะใช้โทเค็นการเข้าถึงของผู้ใช้เพื่อสื่อสารกับ API ของ Flickr คุณจะต้องใช้หนึ่งใน 2 อัญมณีเหล่านี้:
ใส่มันลงใน 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
ใน Sinatra สิ่งนี้กำลังถูกใส่ใน 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) คุณยังสามารถตั้งค่าการอนุญาตที่คุณต้องการจากผู้ใช้ได้ คุณทำได้โดยส่งพารามิเตอร์ perms
GET ใน URL ตัวอย่างเช่น การไปที่ http://localhost:9393/login?perms=delete
จะขอสิทธิ์ "ลบ" จากผู้ใช้ คุณสามารถขอสิทธิ์ "อ่าน", "เขียน" หรือ "ลบ" จากผู้ใช้ได้
โมดูล Flickr::Login::Helpers
เพิ่มวิธีการเหล่านี้ให้กับแอปของคุณ:
#flickr_user
(แฮช) – ข้อมูลเกี่ยวกับผู้ใช้ที่เพิ่งตรวจสอบสิทธิ์#flickr_access_token
(Array) - โทเค็นการเข้าถึงและความลับ#flickr_clear
– ลบเซสชันที่กรอกหลังจากการรับรองความถูกต้อง และออกจากระบบผู้ใช้อย่างมีประสิทธิภาพใน Rails คุณสามารถรวมโมดูลไว้ในคอนโทรลเลอร์ของคุณได้:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
ใน Sinatra คุณสามารถเรียกวิธี helpers
ได้:
helpers Flickr :: Login :: Helpers
อัญมณีนี้เกือบจะเป็นสำเนาโดยตรงของอัญมณี twitter-login และ facebook-login ของ @mislav
เอ็มไอที