이 gem은 웹 애플리케이션에서 Flickr 인증을 제공하는 간단한 Rack 엔드포인트입니다. 웹 애플리케이션에 마운트하기만 하면 나머지 작업이 수행됩니다.
이 보석은 omniauth-flickr의 대안입니다. 둘 다 비슷한 결과를 제공하지만 주요 차이점은 flickr-login
이 훨씬 더 가볍다는 것입니다. 이에 대해 신경 쓰지 않는다면 omniauth-flickr
사용하는 것이 좋습니다. 왜냐하면 omniauth
인증을 위한 훌륭한 표준이기 때문입니다.
Flickr API와의 통신을 위해 사용자의 액세스 토큰을 사용하려는 경우 다음 2개의 gem 중 하나를 사용하는 것이 좋습니다.
Gemfile에 넣으세요:
gem "flickr-login" , require : "flickr/login"
그리고 bundle install
실행하세요.
API Key와 공유비밀번호를 가지고 있어야 합니다. 아직 가지고 있지 않다면 여기에서 신청할 수 있습니다. 설정에서 API_KEY
및 SHARED_SECRET
실제 값으로 바꾸십시오.
이것은 Rails 3 에서 gem을 사용하는 방법에 대한 예입니다(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
이제 다음과 같이 Rack 끝점을 마운트합니다.
# 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로 리디렉션되어 신청서를 승인하게 됩니다. 그런 다음 사용자는 session[:flickr_access_token]
및 session[:flickr_user]
가 채워진 상태로 앱으로 다시 리디렉션됩니다( :return_to
로 지정된 경로로 다시).
session[:flickr_access_token]
– 액세스 토큰 및 액세스 비밀번호의 배열session[:flickr_user]
– 인증된 사용자에 대한 정보 해시 Flickr::Login
에 사용 가능한 옵션은 다음과 같습니다.
:return_to
– 인증 후 사용자가 리디렉션되는 위치(기본값은 "/"
):site
– 사용되는 API 엔드포인트(기본값은 http://www.flickr.com/services) 사용자에게 요청하는 권한을 설정할 수도 있습니다. URL에 perms
GET 매개변수를 전달하면 됩니다. 예를 들어 http://localhost:9393/login?perms=delete
로 이동하면 사용자에게 "삭제" 권한을 요청하게 됩니다. 사용자에게 "읽기", "쓰기" 또는 "삭제" 권한을 요청할 수 있습니다.
Flickr::Login::Helpers
모듈은 앱에 다음 메서드를 추가합니다.
#flickr_user
(Hash) – 방금 인증한 사용자에 대한 정보#flickr_access_token
(배열) – 액세스 토큰 및 비밀#flickr_clear
– 인증 후 채워진 세션을 삭제하여 사용자를 효과적으로 로그아웃시킵니다.Rails 에서는 컨트롤러에 모듈을 포함할 수 있습니다.
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
Sinatra 에서는 helpers
메소드를 호출할 수 있습니다:
helpers Flickr :: Login :: Helpers
이 gem은 @mislav 의 twitter-login 및 facebook-login gem을 거의 그대로 복사한 것입니다.
MIT