去年做了一阵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分享)!

APP开发,微信第三方登录的介绍的更多相关文章

  1. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  2. 微信第三方登录(原生)demo

    在一家ecstore二开公司有一段时间了,公司希望往自己研发产品上面走,一直在培养新人.   最近要自己去微信登录,自己就在ectore的框架基础上,写的原生微信第三方登录以此来熟悉微信第三方登录,在 ...

  3. iOS微信第三方登录实现

    iOS微信第三方登录实现   一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统.在进行微信OAuth2.0授权登录接入之前,在微信开 ...

  4. laravel5实现微信第三方登录功能

    背景 最近手头一个项目需要实现用户在网站的第三方登录(微信和微博),后端框架laravel5.4. 实现过程以微信网页版第三方登录,其他于此类似,在此不做重复. 准备工作 网站应用微信登录是基于OAu ...

  5. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  6. 3. ABP .NETCore 添加企业微信第三方登录

    1.企业微信登录步骤 1.获取企业微信Token 官方文档:https://work.weixin.qq.com/api/doc#90000/90135/91039 2.通过Token 与前端传的Co ...

  7. 微信公众号与APP微信第三方登录账号打通

    一个项目同时开发了APP和微信服务号,需要做到APP和微信服务号的账号互通同步,也就是说一个账号在2个地方都可以用,当然这个前提是保证你公司自己的服务器的数据库用的是同一套. 为保证用户数据的唯一性, ...

  8. iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现

    项目地址 :    https://github.com/zhonggaorong/weixinLoginDemo 最新版本的微信登录实现步骤实现: 1.在进行微信OAuth2.0授权登录接入之前,在 ...

  9. 无需公众号PHP微信登录微信授权微信第三方登录微信开发php开发

    无论是个人还是公司,无需申请公众号,无需申请微信开放平台,即可实现手机网站和PC网站的微 信登录!!! 正常的微信登录是这样的: 1.手机版网站做微信登录,需要申请一个认证公众号,认证不仅需要公司营 ...

随机推荐

  1. Confluence 6 配置 workbox 通知

    你可以在你的 Confluence workbox 中查看和管理应用内的通知和任务.更多的,你可以在 Confluence workbox 中从接收到从 JIRA 和其他 Confluence 服务器 ...

  2. 学习Spring Boot:(一)入门

    微服务 现在微服务越来越火了,Spring Boot热度蹭蹭直升,自学下. 微服务其实是服务化思路的一种最佳实践方向,遵循SOA(面向服务的架构)的思路,各个企业在服务化治理上面的道路已经走得很远了, ...

  3. SpringCloud服务提供者

    服务提供者就是提供一个服务暴露出来给别人调用,在springcloud中需要注册服务到服务中心 搭建服务提供者项目(ProduceDemo) 1.创建pom.xml <project xmlns ...

  4. 剑指offer 二叉树中和为某一个值的路径

    剑指offer 牛客网 二叉树中和为某一个值的路径 # -*- coding: utf-8 -*- """ Created on Tue Apr 9 15:53:58 2 ...

  5. lightoj1234 打表技巧:分块打表

    /* 打不了那么大的表,所以只记录分块的信息即可 */ #include<bits/stdc++.h> using namespace std; #define maxn 1000005 ...

  6. bzoj 3566

    非常好也是比较难的题 首先,不难看出这是一道树形的概率dp 那么我们就要考虑转移 我们发现,一个点能充上电的概率是这个点本身通电的概率+这个点的子节点给他传过来电的概率+这个点的父节点给他传过来电的概 ...

  7. Java将文件中的内容转换为sql语句(和并发定时读取文件)

    数据文件内容data.txt {USER_TYPE=1,CREATE_USER=ZHANG,UPDATE_USER=li,OPER_NUM=D001,SRC=2,UPDATE_TIME=2018-11 ...

  8. scss文件使用笔记

    1.编写兼容性代码 例如透明度,兼容IE @mixin mOpacity($o){ opacity:$o/100; filter:alpha(opacity=$o); } //引用 .box{ @in ...

  9. Pthon面向对象之基础

    命名空间 class Course: language = 'Chinese' def __init__(self,teacher,name,period,price): self.teacher = ...

  10. Apache Pulsar——企业级消息订阅系统介绍

    Apache Pulsar是一款由雅虎开发的类似于Kafka的企业级消息订阅系统,在2016将其开源,由Apach基金会孵化,现在已经成长为Apache基金会的顶级项目.Pulsar在雅虎内部已经运行 ...