学习微信公众号oauth2.0

首先看下整个步聚.

 

1. 后台服务器引导用户请求微信服务器, 微信服务器响应在微信浏览器提示用户是否要授权.

2. 用户同意后微信服务器返回code.

3. 微信浏览器跟据重定向redirect_uri带上code请求后面服务器.

4. 后台服务器收后code后, 用code请求微信服务器.

5. 微信服务器返回access_token.

之后,后台服务器就可以用这个access_token在有效期内获取用户授权的信息. 这里的code只能用一次, access_token也有时间限制, 超时后就用不了, 但可以延长时间. 

通俗的理解, 小明的相片存在Google云上, 想让相馆打印出来, 但是不能直接给帐号密码, 相馆便叫小明问Google云要一个code, 相馆拿到code后, 就向Google云申请一个access_token, 相馆通过access_token就可以获取到小明的相片了.

但为什么小明不直接向Google云申请access_token, 就这个例子来说也是可以的, 但从微信授权来说, 微信端浏览器直接获取access_token是不安全的, 容易被抓取, 所以重要的信息都不要暴漏在客户端.

 

参考

http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html

https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025283&token=&lang=zh_CN

转载于:https://www.cnblogs.com/jimzbom/p/6595805.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/469092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【YOLOV5-6.x讲解】YOLO5.0VS6.0版本对比+模型设计

主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本的可以看其他大佬的帖子本文章主要从6.X版本出发,主要解…

python 爬虫是什么_“python爬虫“是什么呢?

Python爬虫是用Python编程语言实现的网络爬虫,主要用于网络数据的抓取和处理,相比于其他语言,Python是一门非常适合开发网络爬虫的编程语言,大量内置包,可以轻松实现网络爬虫功能。 Python爬虫可以做的事情很多&#x…

2017模拟赛:还款计算

银行贷款的等额本息还款方法是:每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入)。 比如说小明在银行贷款1万元。贷款年化利率为5%,贷款期限为24个月。则银行会在每个月进行结算&#xff1…

【YOLOV5-6.x讲解】数据增强方式介绍+代码实现

主干目录: 【YOLOV5-6.x 版本讲解】整体项目代码注释导航现在YOLOV5已经更新到6.X版本,现在网上很多还停留在5.X的源码注释上,因此特开一贴传承开源精神!5.X版本的可以看其他大佬的帖子本文章主要从6.X版本出发,主要解…

Android Input子系统-含实例源码

Android Input子系统-含实例源码 1 Input子系统作用 Android很多外设都是用到输入输出设备,比如touchscreen,键盘,音量键等,输入 设备对应Android 框架是Android input子系统,像我们定制类比较多的,很多 需…

【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现

一、效果图: 显示:代码常见报错》正文开始↓ 一、Pascal VOC数据集介绍 Pascal VOC网址:http://host.robots.ox.ac.uk/pascal/VOC/ 训练/验证数据集下载(2G):host.robots.ox.ac.uk/pascal/VOC/voc2012/VO…

MYSQL基础十一--存储引擎

MYSQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。 每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。 存储引擎: MyISAM InnoDB Memory CSV Archive 并发控制:当多个连接…

tinyxml2遍历所有节点_Python实现二叉树的遍历

Outline:二叉树概念二叉树遍历(前序、中序、后序、宽度优先遍历)的迭代实现和递归实现;二叉树的深度,二叉树到leaf的所有路径。树(Tree)是一种抽象数据类型(ADT)&#xf…

触摸屏响应速度性能分析

1 前言2 触摸屏的响应速度分为几个阶段去优化3 举例:Rockchip平台 3.1 分析3.2 总结:所以阶段3耗时:439.251402-439.249389=2.1ms4示波器测试 4.1 阶段14.2 阶段2,阶段35 代码测试6 原文链接1 前言 上一篇文章介绍了Android Input子系统,Touchscreen是典型的输入设备,有…

如何监控NVIDIA Jetson的的运行状态和使用情况

一、NVIDIA Jetson介绍 NVIDIA Jetson是NVIDIA为新一代自主机器设计的嵌入式系统,是一个AI平台,所提供的性能和能效可提高自主机器软件的运行速度。每个系统都是一个完备的模块化系统,具备CPU、GPU、PMIC、DRAM和闪存。Jetson具备可扩展性&a…

atm取款机的简单程序代码_LeNet:一个简单的卷积神经网络PyTorch实现

前两篇文章分别介绍了卷积层和池化层,卷积和池化是卷积神经网络必备的两大基础。本文我们将介绍一个早期用来识别手写数字图像的卷积神经网络:LeNet[1]。LeNet名字来源于论文的第一作者Yann LeCun。1989年,LeNet使用卷积神经网络和梯度下降法…

gcc c语言编译流程

1前言 最近群里讨论个C语言的小程序,看起来都不是很难,但是大家对答案有争论,所以想讨论编译原理,做嵌入式要对编译原理有一定的了解,所以转了这篇文章。 我们之前讨论的问题如下代码 #include #include #define WEIQIFA 0;int main(void) { int i = WEIQIFA; …

【数据集转换】VOC数据集转COCO数据集·代码实现+操作步骤

在自己的数据集上实验时,往往需要将VOC数据集转化为coco数据集,因为这种需求所以才记录这篇文章,代码出处未知,感谢开源。 在远程服务器上测试目标检测算法需要用到测试集,最常用的是coco2014/2017和voc07/12数据集。 …

交换两个整型变量的数值

#include<stdio.h>#include<conio.h> main(){ void swap(int *p1,int *p2);//定义一个函数作用是交换两个整型变量的数值 int x,y;//定义整型变量x&#xff0c;y int *a1,*a2;//定义整型指针a1&#xff0c;a2 printf("任意输入两个数值&#xff1a;")…

idea spring tomcat启动失败_技术篇 | 实用IDEA插件和工具系列

前 言本章主要分享一些工作中常用的IDEA插件(Maven Helper、Lombok、Mybatis Log Plugin、RestfulToolkit、JRebel And XRebel)和实用工具arthas。01Maven Helper作用&#xff1a;能清晰的查看当项目的Maven依赖版本、依赖关系、依赖冲突等情况。使用步骤&#xff1a;①安装后,…

【数据集可视化】VOC数据集标注可视化+代码实现

二、VOC可视化数据集 1、作用 在做目标检测时&#xff0c;首先要检查标注数据。一方面是要了解标注的情况&#xff0c;另一方面是检查数据集的标注和格式是否正确&#xff0c;只有正确的情况下才能进行下一步的训练。 2、代码实现 import os # import sys import cv2 import…

串口UART串行总线协议

串口UART 串行端口是异步的&#xff08;不传输时钟相关数据&#xff09;&#xff0c;两个设备在使用串口通信时&#xff0c;必须先约定一个数据传输速率&#xff0c;并且这两个设备各自的时钟频率必须与这个速率保持相近&#xff0c;某一方的时钟频率相差很大都会导致数据传输…

基于Springboot外卖系统01:技术构成+功能模块介绍

外卖系统是专门为餐饮企业&#xff08;餐厅、饭店&#xff09;定制的一款软件产品&#xff0c;包括 系统管理后台 和 移动端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员工使用&#xff0c;可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护。移动端应用主要…

HTML5本地图片裁剪并上传

最近做了一个项目&#xff0c;这个项目中需要实现的一个功能是&#xff1a;用户自定义头像&#xff08;用户在本地选择一张图片&#xff0c;在本地将图片裁剪成满足系统要求尺寸的大小&#xff09;。这个功能的需求是&#xff1a;头像最初剪切为一个正方形。如果选择的图片小于…

python成员运算符包括_Python 使用成员运算符案例

什么是操作符&#xff1f; 简单的回答可以使用表达式4 5等于9&#xff0c;在这里4和5被称为操作数&#xff0c;被称为操符。 Python语言支持操作者有以下几种类型。 算术运算符 比较(即关系)运算符 赋值运算符 逻辑运算符 位运算符 会员操作符 标识操作符 下面简单介绍一下&am…