zoukankan      html  css  js  c++  java
  • APP开发,微信第三方登录的介绍

    去年做了一阵APP相关的开发,经常遇到第三方登陆的需求,比如微信、微博、fb的第三方登陆等等,其实主要的流程都大同小异,这里就以微信为例来介绍,希望对大家有帮助。

    微信开放平台(open.weixin.qq.com)

    1. 注册开发者账号,填写基本信息,例如邮箱,邮箱激活
    2. 完善开发者的资料,包括真实姓名,手机,地址等
    3. 腾讯审核开发者资质,审核费用每年300
    4. 在管理中心创建应用,分移动应用、网站应用等不同类型
    5. 填写应用的名称、简介、logo、应用的官方网站等信息
    6. 腾讯审核,7个工作日
    7. 通过后可获得该应用的APPID、AppSecret
    8. 并且可在应用详情中申请开通微信登录、微信支付等

    调用流程

    1. 获取授权码(code)

    1.1. 移动应用调用SDK
    1.2. 网站应用调用

    https://open.weixin.qq.com/connect/qrconnect

    并传入APPID,及重定向地址,生成二维码地址。用户使用微信扫描二维码并同意授权后,跳转至重定向地址,并且带来了授权码。

    2. 使用授权码获取access_token

    2.1. 通过调用

    https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

    返回结果类似如下:


     "access_token":"ACCESS_TOKEN"
     "expires_in":7200
     "refresh_token":"REFRESH_TOKEN",
     "openid":"OPENID"
     "scope":"SCOPE",
     "unionid""UNIONID"
    }

    2.2. access_token有效期
    有效期较短(2小时),refresh_token有效期一个月,可以使用refresh_token刷新access_token,避免频繁要求用户同意授权。

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    2.3. 多个应用的情况
    如果同时有多个应用,同一个微信用户在不同的应用上登录会生成不同的openid,但unionid相同,若需要同一微信用户映射到后台的同一账户上,应使用unionid。

    3.通过access_token获取用户信息(如昵称等),

    https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID"

    备注

    以上调用步骤可以完全由前端(APP、WEB)完成,不过一般应用后台有自己的一套用户系统,所以应用后台可以在不同的步骤介入,例如可以在前端活动用户信息后调用后台进行入库保存,或者也可已在获得access_token后介入,由后台访问微信获取用户信息。

    好了,今天就先到这儿,cheers!



    送书了,送书了,没有套路,没有套路,关注公众号“程序员杂书馆”,就送出O'Reilly《Spark快速大数据分析》纸质书(亦有一批PDF分享)!

  • 相关阅读:
    Nginx的启动、停止与重启
    linux环境下安装nginx步骤
    关于Nginx的负载均衡
    【Nginx】实现动静分离
    nginx中的反向代理
    Nignx的简介
    ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'orderite
    mysql出现“ You can't specify target table '表名' for update in FROM clause”解决方法
    SpringMvc的工作原理图
    【Java多线程】Java中的13个原子操作类(十九)
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/10119045.html
Copyright © 2011-2022 走看看