微信登录流程图:

视频效果:

flask项目实现微信登录

1. view代码

from flask import Flask, render_template
from flask import Markup
from flask import redirect
from flask import request
from flask import jsonifyfrom python_weixin_master.weixin.client import WeixinAPI# from python_weixin_master.weixin.oauth2 import OAuth2AuthExchangeErrorapp = Flask(__name__)APP_ID = 'wxa77a00333cd8d99a'
APP_SECRET = '6f616f770203c4cc930829f6fdfc2396'
REDIRECT_URI = 'http://127.0.0.1:5000/role'@app.route("/role")
def role():code = request.args.get('code')api = WeixinAPI(appid=APP_ID,app_secret=APP_SECRET,redirect_uri=REDIRECT_URI)auth_info = api.exchange_code_for_access_token(code=code)"""auth_info = {'access_token': 'OezXcEiiBSKSxW0eoylIsl6sxHRfhXg1no5ObdGufYhRIubP2m3FUdv-Cop3t3S_xwMbBWQ','refresh_token': 'OezXcEiiBSKSxW0eoylIeGXVsfdajniiwsVJiT7fTv7j5jCAxg','openid': u'oV02tuA8Wt6Kk7S0pVydThYvmSJA','expires_in': 7200,'scope': u'snsapi_login'}"""api = WeixinAPI(access_token=auth_info['access_token'])resp = api.user(openid=auth_info['openid'])# 此时的resp中已经获取到了用户的所有信息:dict类型# openid,nickname,sex,language,city,province,country,headimagurl# print(resp)# 校验access_token是否过期# v = api.validate_token(openid=auth_info['openid'])# print(v)  # :{'errcode': 0, 'errmsg': 'ok'}# return jsonify(resp)return render_template("index.html", **resp)# @app.route("/login")
# def login():
#     api = WeixinAPI(appid=APP_ID,
#                     app_secret=APP_SECRET,
#                     redirect_uri=REDIRECT_URI)
#     redirect_uri = api.get_authorize_login_url(scope=("snsapi_base",))
#     return redirect(redirect_uri)@app.route("/wx_login")
def login():return render_template("wx.html")if __name__ == "__main__":app.run(debug=True)

2. wx.html代码

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title></title><script src="static/jquery-1.12.4.min.js"></script>
</head>
<body>
<button id="wx_login">微信登录</button>
<script>$("#wx_login").click(function () {{#let url = encodeURIComponent(window.location.href); // 注意一定要encodeURIComponent#}let url = encodeURIComponent("http://127.0.0.1:5000/role"); // 注意一定要encodeURIComponentlet url2 =`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxa77a00333cd8d99a&redirect_uri=${url}&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect`window.location.href = url2})
</script>
</body>
</html>

3. index.html代码

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><title>微信登录成功页面</title><meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
{#    {#}
{#  "city": "Tongzhou",#}
{#  "country": "CN",#}
{#  "headimgurl": "https://thirdwx.qlogo.cn/mmopen/vi_32/ibucZH2uiaQEMMzNB4M5ibQa2snJo79SibExXxLymQLrAAdO6KxXkO7qzBwGEkdOWXL4sic1DoeGut9uUShF7WUibicDA/132",#}
{#  "language": "zh_CN",#}
{#  "nickname": "M\u20f0a\u20f0y\u20f0a\u20f0n\u20f0a\u20f0n\u20f0",#}
{#  "openid": "o3uhR6v4Py3UGLtQGWzsmp9IgEfo",#}
{#  "privilege": [],#}
{#  "province": "Beijing",#}
{#  "sex": 1#}
{#}#}<img src="{{ headimgurl }}" alt="头像"> <br>国家:{{ country }}<br>省份:{{ province }}<br>城市:{{ city }}<br>昵称:{{ nickname }}<br>性别:{% if sex == 1 %}男{% elif sex == 0 %}女{% else %}未知{% endif %}
</body>
</html>

3.  依赖包需要下载下来放到环境中的site-packages里面

下载地址:https://github.com/mayanan-python/weixin-login

4. 微信公众平台链接:

http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

5. 此处需要关注:

6. 此处需要设置项目的根url:

此处写域名和端口号

7. 项目依赖

flask
simplejson
requests
chardet
six
xmltodict
pycryptodome
requests_pkcs12

python中实现微信登录相关推荐

  1. 在哪里能收到python实例代码-python实现网站微信登录的示例代码

    最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 python实现网站微信登录的示例代码 微信现在提供两种登录接入方式 移 ...

  2. UNIAPP中H5微信登录

    UNIAPP中H5微信登录 UNIapp中自带封装好的接口,但是在打包成H5中,微信登录对于新手来说网上教程比较少,大部分是分享的教程 H5微信登录之前你需要先在微信公众平台配置js接口安全域名,切记 ...

  3. 【原创】去掉微信登录二维码中的微信登录几个字的解决方法

    去掉微信登录二维码中的微信登录几个字的解决方法 通过分析,原来微信自己有参数可以去掉, 解决方法,如下: 链接中加上 &popup=0&href=https%3A%2F%2Fsta.g ...

  4. python实现网页微信登录_网站微信登录-python 实现

    最近微信登录开放公测,为了方便微信用户使用,我们的产品也决定加上微信登录功能,然后就有了这篇笔记. 根据需求选择相应的登录方式 微信现在提供两种登录接入方式 移动应用微信登录 网站应用微信登录 这里我 ...

  5. python无法打开微信登录_如何让你的微信登录界面地球转起来(利用python实现)...

    让微信地球转起来(python实现) 微信地球 手机重启后打开微信的一瞬间,会看到一幅有名的图片. 大概是站在月亮上看地球的效果.你有没有想过,如果上面那个地球转起来会是怎样? 效果图 素材 这里有两 ...

  6. uni-app:处理微信浏览器中授权微信登录后,无法正常回退问题

    一.情景 在微信浏览器中,需要使用用户微信的code数据,因此采用了"location.href"获取微信授权信息的方式来实现授权登录,并且在重定向页面中获取code,完成操作后需 ...

  7. Android之集成微信登录

    转载请标明出处:  http://blog.csdn.net/hai_qing_xu_kong/article/details/44041241 本文出自:[顾林海的博客] 前言 这篇微信登录的文章是 ...

  8. .net session 有效时间_Python中requests模拟登录的三种方式(携带cookie/session进行请求网站)...

    这篇文章主要介绍了python中requests模拟登录的三种方式(携带cookie/session进行请求网站),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋 ...

  9. 第三方登录之微信登录

    第三方登录有很多,常见有新浪微博.QQ.微信.百度.支付宝等等,我们今天就来讲讲其中一个和其他登录有很大区别的微信登录,我们知道除了微信以外的其他第三方登录都支持账号密码输入的方式进行登录,但是微信登 ...

最新文章

  1. 使用Varnish+ESI实现静态页面的局部缓存
  2. 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc
  3. vmware虚拟机环境里用linux和xp系统测试防火墙的nat转换
  4. Oracle数据库分组排序
  5. boost::hana::typeid_用法的测试程序
  6. 一个C++工程内存泄漏问题的排查及重现工程
  7. git 添加公钥的命令
  8. 构造函数= default;_C++核心准则C.46:默认状态下明确定义单参数构造函数
  9. 超宽带 DWM1000模块 电气规格
  10. 淘宝/天猫API ,获得淘口令真实url
  11. php微信公众号发送多条消息模板,整合ThinkPHP功能系列之微信公众号模板消息发送...
  12. 未来精英论坛3.0 | 探秘桔厂科技和人文
  13. 含论文基于JAVA的户籍信息管理系统【数据库设计、源码、开题报告】
  14. 股票入门(一)基础知识
  15. 多种方式带你玩转 javascript 实现关闭浏览器页签
  16. unc 目录不受支持_经验 |【解决报错】'\\Mac\Home\Desktop' 用作为当前目录的以上路径启动了 CMD.EXE。 UNC 路径不受支持。默认值设为 Windows 目录。...
  17. 程序员常用的工具软件
  18. 执FPGA异构计算之耳
  19. matlab共阳极二极管,三引脚SOT-323封装的共阳极稳压二极管详情
  20. 微信公众平台SDK JAVA实现WeChat-SDK

热门文章

  1. Kubernetes(K8s) —— 容器编排管理技术
  2. 企业非法集资风险预测
  3. python3 高效实现 最大质因数/质因数集合 方法
  4. HTML网页设计制作——初音动漫(6页) dreamweaver作业静态HTML网页设计模板
  5. 怎么写软件功能测试报告,分享详细专业的功能检测报告模板
  6. SSM中mybtis报错### The error may involve defaultParameterMap ### The error occurred while setting param
  7. 病毒木马查杀实战第004篇:熊猫烧香之专杀工具的编写
  8. AD更改原理图纸大小
  9. 从0到1搭建电商营销数据分析平台(六)——聊聊反作弊
  10. EXCEL公式引用得是空的单元格,但是却不返回空““,而是返回0是怎么回事? 怎么处理呢?