首先,插入图片了,界面很点丑,请大家见谅
本想利用 devise+omniauth 设置第三方的认证,但是看几个教程和视频之后,发现要么是单独的 ominuth,要么不是用 devise 内置支持 omniauth 的那种方法,终于在 devise 的 github/wiki 里面找到一个,但是还是没太懂。
devise 是怎么去管理认证这个过程的
在 user.rb 中添加 devise:omniauthable 之后新增两个路由
,我在申请的时候之这样填的
,这个时候访问/users/auth/github 之后显示 github 询问的画面,然后就返回
No route matches [GET] "/users/auth/callback"
,当然我自己也知道这样写肯定找不到,但是不知道 CallbackUrl 该怎么去写才能正确的将东西交由/users/omniauht_callback_controller.rb 去处理
PS:敢问流程是不是这样
链接到 user_omniauth_authorize(:provider),相当在地址栏输入/users/auth/github =====> /users/omniauht_callback_controller.rb ====>用户 allowed 之后 ====> 返到我在申请的时候 callback 的地址上面 (这个时候我出现了报错,应该就是 callback-url 填错了,日志写的是
(github) Authentication failure! invalid_credentials:)
.
大神们,伸出手帮帮忙吧!
参考过https://github.com/plataformatec/devise/wiki/OmniAuth%3A-Overview https://gist.github.com/993566