使用Devise整合OmniAuth實作第三認證 - Spotify帳號登入 (未完)

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
5
gem 'omniauth-spotify'
# Gemfile

bundle install
# Terminal

ps. 其中的spotify可以替換成其他provider,但要先查看OmniAuth’s list of strategies有沒有提供服務

接著要在User Model資料表內新增兩個欄位,分別是provider與uid

1
2
3
rails 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 QQ


參考連結

  1. https://oauth.net/
  2. 漫談OAuth認證協定與運作流程