为什么要接入三方登录

如果你的微信服务器要做复杂的逻辑,比如html5、给用户提供高级的服务,并且有很好看的页面等等,这种时候你就需要一个正常的web服务器,用户打通就需要做三方登录了。

而如果你决定直接用weixin_server做web服务器完全没有问题,80端口给微信留着,剩下的你可以按照一个正常的django项目开发,前端可以接入weixin sdk。

python-socail-auth

我接触python-social-auth已经很久了,其中微信的backend就是我贡献的代码,然而当时做的时候比较年轻,而且这个项目处于一个很大的代码重构中,借这次机会重新用正确的姿势接入了一下三方登录,可以当做一个学习接入三方的demo。顺便提了weixin app登录的backend的一个pr。

如果你想用这个weixin_server项目接入三方登录,可以参考我的python-social-auth,分支master_origin

用户信息

django默认的User信息肯定是不够用的,按照以前开发的尿性,我们需要一个UserProfile做onetoone的关联,记录额外信息。myauth/models.py

配置

参考文档配置即可,可以参考我的配置。

注意配置中SOCIAL_AUTH_通用配置 | SOCIAL_AUTH_QQ_qq的配置的是因为这个地方源码 social/utils.py的代码来做到的。

所谓的正确姿势

关键就是这些pipeline,这是所谓的正确姿势。

SOCIAL_AUTH_PIPELINE = (

'social.pipeline.social_auth.social_details',

'social.pipeline.social_auth.social_uid',

'social.pipeline.social_auth.auth_allowed',

'social.pipeline.social_auth.social_user',

'social.pipeline.user.get_username',

'social.pipeline.user.create_user',

'social.pipeline.social_auth.associate_user',

'social.pipeline.social_auth.load_extra_data',

'social.pipeline.user.user_details',

'myauth.pipeline.user.save_profile',

)

源码的action.py,通过do_complete方法我们可以看到,微信在做pipeline的时候是backend.continue_pipeline是一直根据配置的pipeline往下调用的,文档讲解的很清楚(比当年好多了),pipeline会暂时中断这次auth,做一些你想做的事情(用户名转化,根据微信的unioid关联唯一用户等等),然后回来继续,然而我当年是从中间某个位置直接跳转出去就不从这继续了,好吧现在用了正确的姿势,例如额外信息存储myauth.pipeline.user.save_profile。

所以我的这个项目其实是错误的示范,star的同学们对不起了。

过完pipeline之后微信会根据你settings.py中的各种跳转url根据不同的逻辑做跳转,你需要把其他的业务逻辑放在对应的view里面即可。

然后你加个next参数做跳转就可以实现微信app里面的登录的功能了。

php公众号第三方登录,微信公众号开发小记——3.接入三方登录相关推荐

  1. 微信python天天学_刚学Python一礼拜!我就能模拟登录微信公众号!我是天才吧!...

    最近迷上了用python写爬虫,一发不可收拾,下面我们来说一下如何实现模拟登录微信公众号平台. 故事起因,由于本人注册了一个公众号,想着如何通过脚本实现像部分用户发送消息呢? 如何实现一键上传材料呢? ...

  2. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?

    当下,公众平台模板消息功能仅支持添加模板,修改所在行业,如果想要群发模板消息,可以自己根据公众平台的接口编程实现,也可通过微号帮平台的模板消息群发功能实现,均可以让微信公众号群发模板消息,模板消息即按 ...

  3. 多账号批量登录微信公众号工具_微众公众号助手

    多账号批量登录微信公众号工具_微众公众号助手 账号登录工具 微信公众号 多账号批量登录微信公众号工具 微众公众号助手 点退出会自动退出登录的账号 左表选中下一个账号

  4. 微信授权登录-微信公众号和PC端网站

    一.微信公众号授权登录--微信公众平台 微信授权登录,并调用后台接口,获取用户信息 1.网页授权回调域名 首先要在公众平台官网中的"开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授 ...

  5. php公众号菜单链接,微信公众号菜单栏添加外部链接

    很多微信公号新手用户想通过自己的公众号来推广其他的连接地址,对于认证用户来说可以直接添加,但对于未认证的新手用户来说不知道该怎么做,那么现在就来告诉大家添加外部链接的方法吧. 方法如下: 1.首先打开 ...

  6. 微信公众号使用:微信公众平台企业类型的微信认证申请流程

    新成立的公司申请企业类型的微信公众号流程,作为一个微信公众号相关从业人员来说,是必备技能.本节就来讲讲微信公众平台企业号的认证申请步骤. 一.登录申请开通 具体步骤:登录微信公众平台->设置-& ...

  7. 微信公众号使用:微信公众平台企业号一次发布多条图文消息的方法

    作为微信公众号的维护人员来说,不仅要知道微信公众号的基本功能,还要知道微信公平台的法律法规,发布文章的规则等常识.今天就来说说微信公众号怎么一次同时发布多条图文文章消息.       话又说回来了,微 ...

  8. SpringCloud Alibaba 开发微信公众号(新建微信公众号,内网穿透工具的使用)

    1.怎么建一个微信公众号 登录微信公众平台,选择立即注册. mp.weixin.qq.com/ 在新界面中,选择自己想要创建的公众号类型,个人的话注册订阅号比较适合. 接着就是一堆信息的注册 注册完毕 ...

  9. 微信公众号数据2019_如何制作微信公众号图文素材 微信公众号采集器好用吗

    现在有很多人都会通过微信公众号来发布文章.图片,这时候就需要使用一些编辑技巧了.下面拓途数据就和大家一同来看看如何制作微信公众号图文素材,微信公众号采集器好用吗? 微信公众号图文素材 如何制作微信公众 ...

  10. 微信公众号数据2019_微信公众号榜单排名,2020微信公众号排名

    微信公众号榜单排名,2020微信公众号排名 公众号排名优化的注意事项及细节今天给大家分享一下,作为微信公众号的排名优化对于大多数人来说都已经知道了有这个渠道的事情,其实很多的新产品及渠道出来以后有不少 ...

最新文章

  1. 第7章 面向对象编程(OOP) 《Kotin 编程思想·实战》
  2. 世界32条谣言,你被骗了多少?
  3. 鸿蒙os开源邀请全球开发者,全场景无缝连接 鸿蒙OS开源邀请全球开发者共助生态发展...
  4. 数据结构之线性表:单链表
  5. 传智播客 sklearn数据集与机器学习组成
  6. 微信小程序与公众号推送消息
  7. 国内外最佳的photoshop教程网站推荐
  8. SSM——SpringMVC笔记1
  9. mysql忘记密码win10,如何巧妙解决处理深度技术Win10系统忘记Mysql密码
  10. pdo 参数绑定中 where 子句中的错误的解决
  11. 第一道题目:一个美国人在菜市场上做生意。第一次,8美元买了一只鸡,9美元卖掉了;第二次,10美元买了同样的一只鸡,11美元又卖掉了。
  12. android简历!写给即将正在找工作的Android攻城狮,已拿offer
  13. 信息系统开发(JAVA)设计一个银行账户类
  14. 链家地产-Java工程师面试
  15. iis启动和停止的方法介绍
  16. EAS 客户端缓存清理
  17. php后台开发—微信分销那点事
  18. SQL把一个表中数据更新到另一个表的多种方法
  19. 国外一些测试网站的分享
  20. VC/MFC 编程技巧大总结

热门文章

  1. 传智播客扫地僧C/C++学习笔记冒泡排序
  2. 扇贝有道180919每日一句
  3. 通过脚本找到对应的物体
  4. Atitit 分布式之道 attilax著 第4章 通信 第7章 一致性和复制 第8章 容错性 第9章 安全性 第10章 基于对象的分布式系统 第11章 分布式文件系统 第12章 基于Web的分
  5. atitit 每季度日程表 每季度流程 v3 qaf.docx Ver history V2 add diary cyar data 3 cate V3 fix detail 3cate ,
  6. 互联网创业原则与创业模式attilax大总结
  7. Atitit xml命名空间机制
  8. paip.c++ lua 调用attilax总结.
  9. 转:Rust 调用C/C++
  10. Gartner数据:RPA以75.6%增长率成2019年Q1增速最快的企业级软件(附全球十大RPA市场数据)