Cette gemme est un simple point de terminaison Rack qui fournit l'authentification Flickr dans votre application Web. Vous le montez simplement sur votre application Web et il fait le reste du travail.
Ce joyau est une alternative à omniauth-flickr. Ils fournissent tous deux des résultats similaires, la principale différence est que flickr-login
est beaucoup plus légère. Si cela ne vous intéresse pas, je vous suggère fortement d'opter pour omniauth-flickr
, car omniauth
est un excellent standard d'authentification.
Si vous avez l'intention d'utiliser le jeton d'accès de l'utilisateur pour communiquer avec l'API de Flickr, vous souhaiterez utiliser l'un de ces 2 joyaux :
Mettez-le dans votre Gemfile :
gem "flickr-login" , require : "flickr/login"
Et exécutez bundle install
.
Vous devez être en possession de votre clé API et de votre secret partagé. Si vous ne les avez pas encore, vous pouvez en faire la demande ici. Dans la configuration, remplacez simplement API_KEY
et SHARED_SECRET
par des valeurs réelles.
Ceci est un exemple de la façon dont vous pouvez utiliser la gemme dans Rails 3 (dans Rails 2, c'est probablement similaire).
# 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
Dans Sinatra, cela est mis dans votre config.ru
, qui ressemble probablement à ceci :
# config.ru
require './app'
run Sinatra :: Application
Maintenant, vous montez le point de terminaison Rack comme ceci
# 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
C'est ça. Activez simplement les sessions dans votre app.rb
:
# app.rb
enable :sessions
L'utilisateur sera d'abord redirigé vers Flickr pour approuver votre candidature. L'utilisateur est ensuite redirigé vers votre application (retour au chemin spécifié avec :return_to
), avec session[:flickr_access_token]
et session[:flickr_user]
renseignés.
session[:flickr_access_token]
– un tableau de jetons d'accès et de secrets d'accèssession[:flickr_user]
– un hachage d'informations sur l'utilisateur authentifié Les options disponibles pour Flickr::Login
sont :
:return_to
– vers lequel l'utilisateur est redirigé après l'authentification (par défaut "/"
):site
– le point de terminaison de l'API utilisé (par défaut, http://www.flickr.com/services) Vous pouvez également définir les autorisations que vous demandez à l'utilisateur. Pour ce faire, passez le paramètre perms
GET dans l'URL. Par exemple, accéder à http://localhost:9393/login?perms=delete
demanderait à l'utilisateur les autorisations « supprimer ». Vous pouvez demander à l'utilisateur les autorisations « lire », « écrire » ou « supprimer ».
Le module Flickr::Login::Helpers
ajoute ces méthodes à votre application :
#flickr_user
(Hash) – Les informations sur l'utilisateur qui vient de s'authentifier#flickr_access_token
(Array) – Le jeton d'accès et le secret#flickr_clear
– Efface la session qui a été remplie après l'authentification, déconnectant ainsi l'utilisateurDans Rails, vous pouvez inclure le module dans votre contrôleur :
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
Dans Sinatra, vous pouvez simplement appeler la méthode helpers
:
helpers Flickr :: Login :: Helpers
Ce joyau est presque une copie directe des joyaux de connexion Twitter et Facebook de @mislav .
MIT