Esta jóia é um endpoint Rack simples que fornece autenticação do Flickr em seu aplicativo da web. Basta montá-lo em seu aplicativo web e ele faz o resto do trabalho.
Esta joia é uma alternativa ao omniauth-flickr. Ambos fornecem resultados semelhantes, a principal diferença é que flickr-login
é muito mais leve. Se você não se importa com isso, eu sugiro que você use omniauth-flickr
, porque omniauth
é um ótimo padrão para autenticação.
Se você pretende usar o token de acesso do usuário para comunicação com a API do Flickr, você vai querer usar uma destas 2 joias:
Coloque-o em seu Gemfile:
gem "flickr-login" , require : "flickr/login"
E execute bundle install
.
Você deve possuir sua chave de API e segredo compartilhado. Se você ainda não os possui, pode solicitá-los aqui. Na configuração, basta substituir API_KEY
e SHARED_SECRET
por valores reais.
Este é um exemplo de como você pode usar a gema no Rails 3 (no Rails 2 provavelmente é semelhante).
# 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
No Sinatra isso está sendo colocado no seu config.ru
, que provavelmente se parece com isto:
# config.ru
require './app'
run Sinatra :: Application
Agora você monta o endpoint do Rack assim
# 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
É isso. Basta habilitar sessões em seu app.rb
:
# app.rb
enable :sessions
O usuário primeiro será redirecionado ao Flickr para aprovar sua inscrição. O usuário é então redirecionado de volta ao seu aplicativo (de volta ao caminho especificado com :return_to
), com session[:flickr_access_token]
e session[:flickr_user]
preenchidos.
session[:flickr_access_token]
– uma matriz de token de acesso e segredo de acessosession[:flickr_user]
– um hash de informações sobre o usuário autenticado As opções disponíveis para Flickr::Login
são:
:return_to
– para onde o usuário é redirecionado após a autenticação (o padrão é "/"
):site
– o endpoint da API usado (o padrão é http://www.flickr.com/services) Você também pode definir as permissões que está solicitando ao usuário. Você faz isso passando o parâmetro perms
GET na URL. Por exemplo, acessar http://localhost:9393/login?perms=delete
solicitaria ao usuário permissões de "exclusão". Você pode solicitar ao usuário permissões de “leitura”, “gravação” ou “exclusão”.
O módulo Flickr::Login::Helpers
adiciona estes métodos ao seu aplicativo:
#flickr_user
(Hash) – As informações sobre o usuário que acabou de autenticar#flickr_access_token
(Array) – O token de acesso e segredo#flickr_clear
– Apaga a sessão que foi preenchida após a autenticação, desconectando efetivamente o usuárioNo Rails você pode incluir o módulo no seu controlador:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
No Sinatra você pode simplesmente chamar o método helpers
:
helpers Flickr :: Login :: Helpers
Esta joia é quase uma cópia direta das joias de login no Twitter e de login no Facebook de @mislav .
MIT