Permata ini adalah titik akhir Rack sederhana yang menyediakan otentikasi Flickr di aplikasi web Anda. Anda cukup memasangnya di aplikasi web Anda dan itu akan melakukan sisanya.
Permata ini merupakan alternatif dari omniauth-flickr. Keduanya memberikan hasil serupa, perbedaan utamanya adalah flickr-login
jauh lebih ringan. Jika Anda tidak mempedulikannya, saya sangat menyarankan Anda menggunakan omniauth-flickr
, karena omniauth
adalah standar yang bagus untuk autentikasi.
Jika Anda ingin menggunakan token akses pengguna untuk komunikasi dengan API Flickr, Anda sebaiknya menggunakan salah satu dari 2 permata berikut:
Masukkan ke dalam Gemfile Anda:
gem "flickr-login" , require : "flickr/login"
Dan jalankan bundle install
.
Anda harus memiliki kunci API dan rahasia bersama Anda. Jika Anda belum memilikinya, Anda dapat mengajukan permohonan di sini. Dalam pengaturannya, ganti saja API_KEY
dan SHARED_SECRET
dengan nilai sebenarnya.
Ini adalah contoh bagaimana Anda bisa mendapatkan permata di Rails 3 (di Rails 2 mungkin serupa).
# 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
Di Sinatra ini dimasukkan ke dalam config.ru
Anda, yang mungkin terlihat seperti ini:
# config.ru
require './app'
run Sinatra :: Application
Sekarang Anda memasang titik akhir Rack seperti ini
# 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
Itu saja. Cukup aktifkan sesi di app.rb
Anda :
# app.rb
enable :sessions
Pengguna pertama-tama akan diarahkan ke Flickr untuk menyetujui aplikasi Anda. Pengguna kemudian dialihkan kembali ke aplikasi Anda (kembali ke jalur yang ditentukan dengan :return_to
), dengan session[:flickr_access_token]
dan session[:flickr_user]
diisi.
session[:flickr_access_token]
– array token akses dan rahasia aksessession[:flickr_user]
– hash informasi tentang pengguna yang diautentikasi Opsi yang tersedia untuk Flickr::Login
adalah:
:return_to
– tempat pengguna dialihkan setelah autentikasi (defaultnya adalah "/"
):site
– titik akhir API yang digunakan (defaultnya adalah http://www.flickr.com/services) Anda juga dapat mengatur izin yang Anda minta dari pengguna. Anda melakukan ini dengan meneruskan parameter GET perms
di URL. Misalnya, membuka http://localhost:9393/login?perms=delete
akan meminta izin "hapus" kepada pengguna. Anda dapat meminta izin "baca", "tulis", atau "hapus" kepada pengguna.
Modul Flickr::Login::Helpers
menambahkan metode berikut ke aplikasi Anda:
#flickr_user
(Hash) – Informasi tentang pengguna yang baru saja diautentikasi#flickr_access_token
(Array) – Token akses dan rahasia#flickr_clear
– Menghapus sesi yang diisi setelah autentikasi, sehingga secara efektif mengeluarkan penggunaDi Rails Anda dapat memasukkan modul ke dalam pengontrol Anda:
# app/controllers/session_controller.rb
class SessionController < ApplicationController
include Flickr :: Login :: Helpers
end
Di Sinatra Anda cukup memanggil metode helpers
:
helpers Flickr :: Login :: Helpers
Permata ini hampir merupakan salinan langsung dari permata login-twitter dan login facebook @mislav .
MIT