Ruby on Rails做Facebook登入機制:使用Omniauth gem

Omniauth是一個ruby gems,使用它可以讓你不需要像php一樣要include facebook.php,也不用寫前端javascript,它已經 幫你全部做好了,妳只需要用它即可,以下是全部步驟,供參考。

一.修改Gemfile

二.新增必要controller/action

三.修改/config/routes.rb

四. 新增/config/initializer/omniauth.rb

五.修改views/login/index.html.erb

六.singup_controller新增create/failure action

  • 使用者認證後的fb資料都從request.env[‘omniauth.auth’]找,=>auth_hash = request.env[‘omniauth.auth’]
  • token從auth_hash[‘credentials’][‘token’]找
  • provider從auth_hash[‘provider’]找
  • uid從auth_hash[‘uid’]找

七.測試看看

  • url連到/login/index,點選facebook登入,這時應該會導到facebook頁面,使用者點取消會跑signup_controller 的failure action,使用者若按確定會跑signup_controller的create action

以上就是全部步驟囉

參考文件

發表迴響