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分享)!

  • 相关阅读:
    C 获取编译日期函数
    C# HttpWebRequest 使用,一个Http分析Demo
    C# 字节序调整
    char/wchar_t之间的互转MultiByteToWideChar和WideCharToMultiByte的用法
    前导声明代替头文件依赖和交叉包含
    MFC network address control使用
    [收藏]POSIX标准
    带引用计数的智能指针
    C# string byte[] 转换
    DIV随鼠标滚动
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/10119045.html
Copyright © 2011-2022 走看看