Esta joya es un punto final de Rack simple que proporciona autenticación de Flickr en su aplicación web. Simplemente lo monta en su aplicación web y él hace el resto del trabajo.
Esta joya es una alternativa a omniauth-flickr. Ambos proporcionan resultados similares, la principal diferencia es que flickr-login
es mucho más liviano. Si eso no le importa, le sugiero encarecidamente que utilice omniauth-flickr
, porque omniauth
es un excelente estándar para la autenticación.
Si tiene la intención de utilizar el token de acceso del usuario para comunicarse con la API de Flickr, querrá utilizar una de estas 2 gemas:
Ponlo en tu Gemfile:
gem "flickr-login" , require : "flickr/login"
Y ejecute bundle install
.
Debe tener su clave API y su secreto compartido. Si aún no los tienes, puedes solicitarlos aquí. En la configuración, simplemente reemplace API_KEY
y SHARED_SECRET
con valores reales.
Este es un ejemplo de cómo puedes obtener la gema en Rails 3 (en Rails 2 probablemente sea similar).
# 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
En Sinatra, esto se coloca en su config.ru
, que probablemente se parece a esto:
# config.ru
require './app'
run Sinatra :: Application
Ahora monta el punto final del rack de esta manera
# 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
Eso es todo. Simplemente habilite las sesiones en su app.rb
:
# app.rb
enable :sessions
Primero, el usuario será redirigido a Flickr para aprobar su solicitud. Luego, el usuario es redirigido de regreso a su aplicación (de regreso a la ruta especificada con :return_to
), con session[:flickr_access_token]
y session[:flickr_user]
completadas.
session[:flickr_access_token]
– una matriz de token de acceso y secreto de accesosession[:flickr_user]
– un hash de información sobre el usuario autenticado Las opciones disponibles para Flickr::Login
son:
:return_to
– donde se redirige al usuario después de la autenticación (el valor predeterminado es "/"
):site
: el punto final API que se utiliza (el valor predeterminado es http://www.flickr.com/services) También puede configurar los permisos que le solicita al usuario. Para ello, pase el parámetro GET perms
en la URL. Por ejemplo, ir a http://localhost:9393/login?perms=delete
le pediría al usuario permisos de "eliminación". Puede pedirle al usuario permisos de "lectura", "escritura" o "eliminación".
El módulo Flickr::Login::Helpers
agrega estos métodos a su aplicación:
#flickr_user
(Hash): la información sobre el usuario que acaba de autenticarse#flickr_access_token
(matriz): el token de acceso y el secreto#flickr_clear
: borra la sesión que se completó después de la autenticación, cerrando efectivamente la sesión del usuario.En Rails puedes incluir el módulo en tu controlador:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
En Sinatra puedes simplemente llamar al método helpers
:
helpers Flickr :: Login :: Helpers
Esta joya es casi una copia directa de las gemas de inicio de sesión en Twitter y Facebook de @mislav .
MIT