この gem は、Web アプリケーションで Flickr 認証を提供するシンプルな Rack エンドポイントです。これを Web アプリケーションにマウントするだけで、残りの作業は自動的に行われます。
この宝石は、omniauth-flickr の代替品です。どちらも同様の結果を提供しますが、主な違いは、 flickr-login
がはるかに軽量であることです。それを気にしないのであれば、 omniauth-flickr
を使用することを強くお勧めします。 omniauth
は優れた認証標準であるためです。
Flickr API との通信にユーザーのアクセス トークンを使用する場合は、次の 2 つの gem のいずれかを使用することをお勧めします。
それを Gemfile に入れます。
gem "flickr-login" , require : "flickr/login"
そして、 bundle install
実行します。
API キーと共有シークレットを所有している必要があります。まだお持ちでない場合は、ここから申請できます。セットアップでは、 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
(ハッシュ) – 認証したばかりのユーザーに関する情報#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 gem と facebook-login gem のほぼ直接のコピーです。
マサチューセッツ工科大学