Senparc之OAuth原理
今天学习了网易云课堂的 盛派的微信开发课程之OAuth微信网页授权:OAuth原理,边听边来波笔记;
1、什么是OAuth?

OAuth 你的接口提供给别人使用,你需要提供Oauth,可以让被人使用,也可以使用别人的OAuth
OAuth2.0安全性更高
OAuth2.0的流程
开发者服务器或APP <---------------------------------------------------------->微信服务器
1、A:客户端(应用服务器)向服务器(对应微信服务器)发送验证请求,请求中一般会携带这些参数:
ID:标识,例如微信公众号的APPId,
验证后跳转到的URL(redirectUrl)
状态参数(可选)
授权作用域(可选)
响应类型(可选)
2、B:服务器端返回一个grant授权标识(微信默认情况下称之为Code),就像一个一次性的临时字符串密钥,如果A中提供了
redirectUrl,这里服务器会做一次跳转,带上grant和状态参数,访问redirectUtl.
3、C:客户端的redirectUrl对应页面,凭借grant再次发起请求,这次请求中通常会携带一些敏感信息:
ID:标识 (微信公众号的APPId)
密码
grant字符串(code)
grant类型(可选、微信中默认为code)
4、D:服务器验证ID标识、密码、grant都正确后,返回AccessToken(注意:这里的AccessToken和之前通用接口、高级接口介绍的AccessToken没有关系,不能交叉使用)
5、E:客户端凭借AccessToken请求一系列的API,在此过程中不会携带AppId,Secret,grant等敏感信息。
6、F:服务器返回请求结果
第一步是用户直接操作的,最后一步返回用户的基本信息
微信中两种授权方式:
1、显示授权 snsapi_userinfo 特点:有授权,无论用户有无关注公众号,都能得到详细的信息 如 openId,昵称、头像 性别 、所在地区等等
2、静默授权:  snsapi_userinfo 特点:如果用户没有关注,只能获得OpenId
混合使用:先用静默授权 获取openId,如果还没有关注,就显示的授权,
加强账号和密码的安全性:
1、客户端将密码加密后传输到服务器
2、服务器端使用”加盐“的方式进行混淆加密,严谨明文存储密码
3、尽量不要使用Cookie存储用户名、尤其是OpenId,更不要在Url中传输OpenId
4、你必须知道:Session常规情况下也是依赖Cookie才能起作用的,所以不要以为Session和客户端安全无关!
5、Https不能解决所有安全问题!
Senparc之OAuth原理的更多相关文章
- oauth简单使用
		一.oauth原理参考 理解OAuth 2.0 二.本例中采用授权码模式 大致流程 (A)用户访问客户端,后者将前者导向认证服务器. (B)用户选择是否给予客户端授权. (C)假设用户给予授权,认证服 ... 
- shiro整合oauth
		一.基本思路脑图 二.客户端shiro配置 shiro配置文件 <?xml version="1.0" encoding="UTF-8"?> < ... 
- 在Phonegap下实现oAuth认证
		原文:http://www.kuqin.com/mobile/20120719/322873.html 前段时间做过两次关于Phonegap的现场交流会议分享.基本上把Phonegap的一些特性和大家 ... 
- Java爬虫工程师技能列表
		以下仅仅是自己一些粗浅认识.欢迎补充指正.欢迎进群交流! 掌握一半便能够熟练的开发爬虫玩了.自己正在努力中... 一.技能列表 1.掌握java.尤其编程网络部分:李刚的java基础至少看了三遍以上: ... 
- OAuth2.0详解
		1.使用场景 A系统存放着订单信息 B系统需要查询A系统中的订单信息,但是必须要A系统验证通过后,才能查询. 此时,我们有两种验证方式: 1)拥有A系统的账户/密码 弊端是对A系统来说,直接提供账户/ ... 
- C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决
		近期在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同一时候自己须要一个个的尝试与解决,终于完毕了豆瓣API的訪问.作者这里就不再吐槽豆瓣的认证文档了,毕 ... 
- 基于OWIN+DotNetOpenOAuth实现OAuth2.0
		这几天时间一直在研究怎么实现自己的OAuth2服务器,对于太了解OAuth原理以及想自己从零开始实现的,我建议可以参考<Apress.Pro ASP.NET Web API Security&g ... 
- php常见面试题
		1.如何取得来访者的IP地址? $_SERVER['RRMOTE_ADDR']; $_SERVER['CLIENT_IP']; $_SERVER['HTTP_X_FORWARED_FOR']; 2.$ ... 
- Java的oauth2.0 服务端与客户端的实现
		oauth原理简述 oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装.我们做Java web项目想要实现oauth协议进行资源授权访问,直 ... 
随机推荐
- 禁用 urllib3 的安全请求警告
			报错情况: 禁用该警告: import urllib3 urllib3.disable_warnings() 
- python之yield的一些应用
			生成器 yield是用于生成器.生成器通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器.它不同于函数的使用方法是:函数使用return来进行返回值,每调用一次,返回 ... 
- Assets.car 解压工具  cartool 使用报错 segmentation fault  cartool 解决方案
			1 cartool 下载地址 https://github.com/steventroughtonsmith/cartool 由于在macOS Mojave系统上 之前代码会报错需要修改main.m ... 
- 【Java】「深入理解Java虚拟机」学习笔记(5)- 类加载
			C/C++在编译时需要进行连接,而Java的类加载.连接和初始化是在运行时完成的. 图 类的生命周期 图中解析的过程不一定在准备和初始化之间,也可以在初始化之后再开始,以支持Java的运行时动态绑定 ... 
- Lesson 1-2
			1.5 模块 模块可视为扩展,通过将其导入可以扩展python的功能.python中自带有一组模块,也称为“标准库”. 1.5.1 模块的导入:import + 模块名称 • 使用关键字import导 ... 
- IntelliJ IDEA重启Tomcat
- [原创]免固件开发USB2.0 FPGA方案 速度40Mbyte/s+
			USB 2.0接口,实测速度40Mbyte/s: 一个接口实现两种功能(USB2.0+FPGA配置): 免固件开发: 完整的FPGA代码,即拿即用: FPGA逻辑工程师开发USB接口福音: 平台可移植 ... 
- displaytag如何实现获取到每行的id字段的值。
			1.displaytag如何实现获取到每行的id字段的值. 使用封装好的框架,有时候,对于一个知识点不熟悉,可能会浪费你大把的时间,我使用displaytag主要是使用它的分页技术,但是客户提出的需求 ... 
- GitHub上受欢迎的Android UI Library
			GitHub上受欢迎的Android UI Library 内容 抽屉菜单 ListView WebView SwitchButton 按钮 点赞按钮 进度条 TabLayout 图标 下拉刷新 Vi ... 
- CF1093
			题解: D: 比较显然这个图得是二分图才行 然后每个二分图上的方案是$(2^a+2^b) (a,b是两种颜色的个数)$ E: 我tm就不该先写bitset的 正解和bitset都很好想 因为是个排列, ... 
