V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
Kcelone
V2EX  ›  Python

微信第三方登陆 实现设计思路

  •  
  •   Kcelone · 2018-11-08 18:10:22 +08:00 · 4015 次点击
    这是一个创建于 2198 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这两天在做利用微信第三方登陆应用网站的接口,查了下资料,说的还是蛮详细的,总结一下。

    1. 进行开发的相关文档基本都在这里: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432,建议大概看下,可以了解到,微信没有提供免费的沙箱环境以供调试本地三方登陆网站。测试号那个也没有提供二维码登陆的调试功能,所以没必要像我再走弯路。

    2. 开发流程开始:

      1. 根据网站应用注册可以获取到 app_id 和 app_secret,这个是在开放平台注册应用时获取到的。

      2. https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect 根据这个 url 格式,填写 url 中的各个参数,其中 scope 为 snsapi_login,state 是个随机字符串,可以使用时间,session 等进行加密生成的字符串。

      3. 跳转认证成功之后,会跳转到你的回调地址,你的 url 会多了一个参数 code (前提是参数:response_type=code ),我们需要拿到这个 code 换取网页授权 access_token,https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

      4. 认证后,会返回一个 json,包括 open_id 等信息。可以通过 open_id 获取用户信息,最后就是拿到 json 中的 access_token 和 openid 去获取用户的微信信息数据了。

      网上有很多相关的资料,可以多查查,少走弯路就是提高了效率, 欢迎加群号:902788038 这里有一群可以一起奋斗的小伙伴,也有阅人无数的 HR 小姐姐,希望可以在这里可以收获成长,并找到心仪工作。

    14 条回复    2018-11-12 13:46:11 +08:00
    pricelessLucky
        1
    pricelessLucky  
       2018-11-08 18:45:58 +08:00
    点开这个帖子之前,我还以为楼主说的会是利用 web 微信的二维码登录呢……
    cdwyd
        2
    cdwyd  
       2018-11-08 18:49:40 +08:00
    我也以为是另辟蹊径的那种登录
    zhaishunqi
        3
    zhaishunqi  
       2018-11-08 19:06:45 +08:00
    骚年,慢慢的你会发现,很多坑.
    johnniang
        4
    johnniang  
       2018-11-08 19:15:03 +08:00 via Android
    @zhaishunqi 对。后面坑得我五体投地。
    lsido
        5
    lsido  
       2018-11-08 20:28:42 +08:00 via Android
    哎,要是有手机的就好了
    lolizeppelin
        6
    lolizeppelin  
       2018-11-08 21:03:49 +08:00 via Android
    楼上两位坑都踩光了么
    tabzjh
        7
    tabzjh  
       2018-11-08 21:15:38 +08:00
    还有内外网问题,当时我可是惨了
    chinvo
        8
    chinvo  
       2018-11-08 22:45:10 +08:00 via iPhone
    能用别人做好的库就别自己写,坑太多
    Kcelone
        9
    Kcelone  
    OP
       2018-11-09 10:28:03 +08:00
    @pricelessLucky 好像说的就是的吧
    Kcelone
        10
    Kcelone  
    OP
       2018-11-09 10:28:32 +08:00
    @lsido 移动端的开发也在日程中了
    Kcelone
        11
    Kcelone  
    OP
       2018-11-09 10:29:06 +08:00
    @tabzjh 内外网,我用的是 natapp,网上教程很多,可以试试。
    pricelessLucky
        12
    pricelessLucky  
       2018-11-09 17:03:46 +08:00
    @Kcelone 不一样,我说的不需要 app_id、app_secret
    d5
        13
    d5  
       2018-11-10 18:39:41 +08:00 via iPhone
    小程序出来后就没碰微信开发了,贴一下常规外的方案:

    可以用认证服务号的参数二维码
    可以被动获得 openid/unionid
    valueOne
        14
    valueOne  
       2018-11-12 13:46:11 +08:00
    當初坑太多,然後就改用現成的了,要求不高,能用就行啦
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5348 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:45 · PVG 15:45 · LAX 23:45 · JFK 02:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.