今天学习了网易云课堂的 盛派的微信开发课程之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原理的更多相关文章

  1. oauth简单使用

    一.oauth原理参考 理解OAuth 2.0 二.本例中采用授权码模式 大致流程 (A)用户访问客户端,后者将前者导向认证服务器. (B)用户选择是否给予客户端授权. (C)假设用户给予授权,认证服 ...

  2. shiro整合oauth

    一.基本思路脑图 二.客户端shiro配置 shiro配置文件 <?xml version="1.0" encoding="UTF-8"?> < ...

  3. 在Phonegap下实现oAuth认证

    原文:http://www.kuqin.com/mobile/20120719/322873.html 前段时间做过两次关于Phonegap的现场交流会议分享.基本上把Phonegap的一些特性和大家 ...

  4. Java爬虫工程师技能列表

    以下仅仅是自己一些粗浅认识.欢迎补充指正.欢迎进群交流! 掌握一半便能够熟练的开发爬虫玩了.自己正在努力中... 一.技能列表 1.掌握java.尤其编程网络部分:李刚的java基础至少看了三遍以上: ...

  5. OAuth2.0详解

    1.使用场景 A系统存放着订单信息 B系统需要查询A系统中的订单信息,但是必须要A系统验证通过后,才能查询. 此时,我们有两种验证方式: 1)拥有A系统的账户/密码 弊端是对A系统来说,直接提供账户/ ...

  6. C# 网络编程之豆瓣OAuth2.0认证具体解释和遇到的各种问题及解决

            近期在帮人弄一个豆瓣API应用,在豆瓣的OAuth2.0认证过程中遇到了各种问题,同一时候自己须要一个个的尝试与解决,终于完毕了豆瓣API的訪问.作者这里就不再吐槽豆瓣的认证文档了,毕 ...

  7. 基于OWIN+DotNetOpenOAuth实现OAuth2.0

    这几天时间一直在研究怎么实现自己的OAuth2服务器,对于太了解OAuth原理以及想自己从零开始实现的,我建议可以参考<Apress.Pro ASP.NET Web API Security&g ...

  8. php常见面试题

    1.如何取得来访者的IP地址? $_SERVER['RRMOTE_ADDR']; $_SERVER['CLIENT_IP']; $_SERVER['HTTP_X_FORWARED_FOR']; 2.$ ...

  9. Java的oauth2.0 服务端与客户端的实现

    oauth原理简述 oauth本身不是技术,而是一项资源授权协议,重点是协议!Apache基金会提供了针对Java的oauth封装.我们做Java web项目想要实现oauth协议进行资源授权访问,直 ...

随机推荐

  1. router-link 返回上页 和 新窗口打开链接

    1.如果使用了Vue-router的话,就可以用 this.$router.go(-1) 实现返回: 2.如果没使用vue-router,就可以用 window.history.go(-1) 实现返回 ...

  2. pod BaiduMapKit 报错解决方案

    错误信息 [!] Error installing BaiduMapKit [!] /usr/bin/git clone https://github.com/BaiduLBS/BaiduMapKit ...

  3. linux 服务配置

    1.基本的linux 服务器防火墙配置 2.配置之前如果需要将之前的所有规则清楚 iptables -F   -------清除预设表filter中的所用规则链的规则 iptables -X ---- ...

  4. JavaFX 记录刚刚接触JavaFX遇到的问题

    操作系统:Windows 10 x64 工具1:Eclipse Java EE IDE for Web Developers. Version: Photon Release (4.8.0) JDK: ...

  5. 分布式队列神器 Celery

    Celery 是什么? Celery 是一个由 Python 编写的简单.灵活.可靠的用来处理大量信息的分布式系统,它同时提供操作和维护分布式系统所需的工具. Celery 专注于实时任务处理,支持任 ...

  6. spring boot 2.0 配置双数据源 MySQL 和 SqlServer

    参考:https://www.cnblogs.com/xiaofengfeng/p/9552816.html 安装 org.mybatis.spring.boot:mybatis-spring-boo ...

  7. 《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本

    v4.2.3 更新内容:1.优化数据存储部分,提高效率.2.修复数据库服务停止造成程序异常退出的现象.3.修复本机没有串口造成无法增加设备驱动的情况.4.增加编辑设备和监测点配置信息功能.5.增加台达 ...

  8. UOJ#449. 【集训队作业2018】喂鸽子 min-max容斥,FFT

    原文链接www.cnblogs.com/zhouzhendong/p/UOJ449.html 题解 设 f(i) 表示给 i 只鸽子喂食使得至少一只鸽子被喂饱的期望次数,先 min-max容斥 一下. ...

  9. 关于<超文本>定义

    百度百科定义: 1, 超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本.它更是一种用户界面范式,用以显示文本及与文本之间相关的内容.现时超文本普遍以电子文档方式存在,其中的文字包含 ...

  10. 【转】 web前端开发分享-目录

    http://www.cnblogs.com/jikey/p/3613082.html 1. web前端开发分享-css,js入门篇 2. web前端开发分享-css,js进阶篇 3. web前端开发 ...