今晚老板 slack 我说 oauth 出问题了,但是我记得我没有做这方面的改动,这是见鬼了,只能在开发环境查一下啦。
查的过程就省略不说,结果发现是在向第三方请求 token 的时候报错了。
完全没有道理啊,这东西怎么会出问题,然后自己把请求 token
的参数粘贴下来试,鬼使神差的把 callback_url
的 query_string
删掉,居然请求成功了。
可是为什么会多了 query_string
呢?想起一周前升级了一次 Gem,一看 omniauth-oauth2
由 1.3.1
升级到 1.4.0
了,看了下 omniauth-oauth2
的 commits,终于找到元凶(Merge pull request #70 from intridea/dont-override-callback-url)了。
很奇怪维护者们为什么要合并这个 PR,这明显会导致很多 oauth 服务出问题的,比如 facebook
,dribbble
等等。
我目前的做法是将 omniauth-oauth2
降级到 1.3.1
,似乎正确的做法是给 omniauth-dribbble
提 PR,像 omniauth-facebook
就更新了。
最后祝各位永远不出 bug 😀