OAuth
An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.[1]
OAuth是Open Authorization的縮寫,中文稱作開放授權,他是一種標準,他讓使用者可以不用提供帳號密碼,授權第三方網路應用程式(Consumer)登入原來的網路應用程式(Provider);比如在Spotify內使用Facebook來登入,並不需要向Spotify提供帳號密碼。整個來來回回的運作流程可以參考[2]。
實作
整體的流程是按照Devise提供的OmniAuth: Overview來操作的。最最一開始就是要載入gem,並記得bundle
1
2
3
4
5gem 'omniauth-spotify'
# Gemfile
bundle install
# Terminal
ps. 其中的spotify可以替換成其他provider,但要先查看OmniAuth’s list of strategies有沒有提供服務
接著要在User Model資料表內新增兩個欄位,分別是provider與uid
1
2
3rails g migration AddOmniauthToUsers provider:string uid:string
rails db:migrate
# Terminal
當有使用多方平台的OAuth時,provider能告訴我們使用者是透過哪個平台登入的
接下來的步驟必須先取得key與secret才能進行,所以要先到Spotify Web API註冊自己的App。連入網頁後,按上方的My Apps並登入Spotify後,就能夠建立自己的App了。點選CREATE AN APP
