0%

django social auth 插件实践

一群懒人,连注册都不愿意。
折腾了一天终于把自己的网站加上了第三方登录。
http://u.changchen.me/accounts/login

Facebook github 和 Google 都搞定了,就差最后一个微博了,因为要等审核身份。。

最后的效果,放弃微博登陆了,因为审核完身份,
网站没有在中国备案还不能用。。也是 @#¥%&*%……
用 twitter 替代了,图标是用 Fortawesome 的图标,真是方便快捷。

整个效果是用 django-social-auth 这个插件实现的。
文档在这:http://django-social-auth.readthedocs.org/en/latest/

需要注意的几点(被各种问题折腾了一天一夜):

  1. 要是遇到最后一步登录失败,一定要加 http://your.domain/complete/××××××/ 到各个 api 的 Authorized redirect URIs 里。
    所以登录后跳转最后无法登陆。
  2. 一定要在本地调试好再发布到网上,用 localhost 替代 127.0.0.1,放到 Authorized redirect URIs 就可以了。
    适用于 window(stackoverflow 上的一个回答):How to locally debug Facebook App
  3. 最后的时候我遇到一个 bug 折磨了我一个下午,就是 Facebook logining works perfectly locally, but redirecting to login error page in the remote.
    Google 这个也没有什么好的回答,最可怕的 bug 就是没有提示的 bug 把、、
    最后新建了一个 Facebook App,把 remote 和 local App 分开,竟然就可以了,也不知道是为什么。
  4. 还有一个问题就是如何获取邮箱,文档上说是在 setting 里加上参数FACEBOOK_EXTENDED_PERMISSIONS = ['email'], 然而好像并没有什么 ruan 用。再研究一下。