Dieses Juwel ist ein einfacher Rack-Endpunkt, der die Flickr-Authentifizierung in Ihrer Webanwendung bereitstellt. Sie mounten es einfach in Ihrer Webanwendung und es erledigt den Rest der Arbeit.
Dieses Juwel ist eine Alternative zu Omniauth-Flickr. Beide liefern ähnliche Ergebnisse, der Hauptunterschied besteht darin, dass flickr-login
viel einfacher ist. Wenn Ihnen das egal ist, würde ich Ihnen dringend empfehlen, sich für omniauth-flickr
zu entscheiden, da omniauth
ein großartiger Standard für die Authentifizierung ist.
Wenn Sie beabsichtigen, das Zugriffstoken des Benutzers für die Kommunikation mit der Flickr-API zu verwenden, sollten Sie eines dieser beiden Juwelen verwenden:
Fügen Sie es in Ihre Gemfile ein:
gem "flickr-login" , require : "flickr/login"
Und führen Sie bundle install
.
Sie müssen im Besitz Ihres API-Schlüssels und Ihres gemeinsamen Geheimnisses sein. Sollten Sie diese noch nicht haben, können Sie diese hier beantragen. Ersetzen Sie im Setup einfach API_KEY
und SHARED_SECRET
durch echte Werte.
Dies ist ein Beispiel dafür, wie Sie den Edelstein in Rails 3 einsetzen können (in Rails 2 ist es wahrscheinlich ähnlich).
# 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
In Sinatra wird dies in Ihre config.ru
eingefügt, die wahrscheinlich ungefähr so aussieht:
# config.ru
require './app'
run Sinatra :: Application
Jetzt mounten Sie den Rack-Endpunkt wie folgt
# 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
Das ist es. Aktivieren Sie einfach Sitzungen in Ihrer app.rb
:
# app.rb
enable :sessions
Der Benutzer wird zunächst zu Flickr weitergeleitet, um Ihren Antrag zu genehmigen. Der Benutzer wird dann zurück zu Ihrer App weitergeleitet (zurück zu dem mit :return_to
angegebenen Pfad), wobei session[:flickr_access_token]
und session[:flickr_user]
ausgefüllt sind.
session[:flickr_access_token]
– ein Array aus Zugriffstoken und Zugriffsgeheimnissensession[:flickr_user]
– ein Hash von Informationen über den authentifizierten Benutzer Verfügbare Optionen für Flickr::Login
sind:
:return_to
– wohin der Benutzer nach der Authentifizierung weitergeleitet wird (Standard ist "/"
):site
– der verwendete API-Endpunkt (standardmäßig http://www.flickr.com/services) Sie können auch die Berechtigungen festlegen, die Sie vom Benutzer verlangen. Dazu übergeben Sie den perms
GET-Parameter in der URL. Wenn Sie beispielsweise zu http://localhost:9393/login?perms=delete
gehen, wird der Benutzer nach „Lösch“-Berechtigungen gefragt. Sie können den Benutzer um die Berechtigung „Lesen“, „Schreiben“ oder „Löschen“ bitten.
Das Flickr::Login::Helpers
Modul fügt Ihrer App diese Methoden hinzu:
#flickr_user
(Hash) – Die Informationen über den Benutzer, der sich gerade authentifiziert hat#flickr_access_token
(Array) – Das Zugriffstoken und das Geheimnis#flickr_clear
– Löscht die Sitzung, die nach der Authentifizierung gefüllt war, und meldet den Benutzer effektiv abIn Rails können Sie das Modul in Ihren Controller einbinden:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
In Sinatra können Sie einfach die helpers
aufrufen:
helpers Flickr :: Login :: Helpers
Dieses Juwel ist fast eine direkte Kopie der Twitter-Login- und Facebook-Login-Juwelen von @mislav .
MIT