相信很多人主要是希望可以透過 devise 來幫忙串接第三方登入,這部分剛好在我們製作專案的時候有順利完成 google 的部分就拿出來分享給大家。
這篇先針對前面三點進行說明。
先到 google cloud 去申請 oauth 金鑰
https://console.cloud.google.com/
點選 oauth 用戶端id 進入申請頁面
填寫的部分:
網域/users/auth/google_oauth2/callback
,是當使用者從 google 授權完成後回到的地方。
送出後會拿到金鑰 id 跟 secret
相關填寫可以參考下面這張圖,是申請完成後點入項目看到的畫面,紅色及藍色得匡線部分,紫色匡線內是金鑰,要拿去專案內設定使用。
devise.rb 檔案進行金鑰設定
建議配合套件 dotenv,把上面這些重要金鑰轉成環境變數存起來,並且記得 .gitignore
要把 .env
檔案加入避免上版本控制
加入下面的設定,後面 ENV["OAUTH_GOOGLE_ID"], ENV["OAUTH_GOOGLE_SECRET"] 是我的金鑰用戶端編號跟密碼
config.omniauth :google_oauth2, ENV["OAUTH_GOOGLE_ID"], ENV["OAUTH_GOOGLE_SECRET"]
https://github.com/zquestz/omniauth-google-oauth2
gem 'omniauth-google-oauth2'
gem 'omniauth-rails_csrf_protection'
下一篇再繼續補上後面步驟的說明。
參考資料: