Senparc之OAuth原理

今天学习了网易云课堂的 盛派的微信开发课程之OAuth微信网页受权:OAuth原理,边听边来波笔记;api

 

一、什么是OAuth?安全

 

OAuth 你的接口提供给别人使用,你须要提供Oauth,可让被人使用,也可使用别人的OAuth
OAuth2.0安全性更高服务器

 

OAuth2.0的流程微信

 

开发者服务器或APP  <---------------------------------------------------------->微信服务器微信开发

一、A:客户端(应用服务器)向服务器(对应微信服务器)发送验证请求,请求中通常会携带这些参数:学习

ID:标识,例如微信公众号的APPId,加密

验证后跳转到的URL(redirectUrl)code

状态参数(可选)blog

受权做用域(可选)接口

响应类型(可选)

二、B:服务器端返回一个grant受权标识(微信默认状况下称之为Code),就像一个一次性的临时字符串密钥,若是A中提供了

redirectUrl,这里服务器会作一次跳转,带上grant和状态参数,访问redirectUtl.

三、C:客户端的redirectUrl对应页面,凭借grant再次发起请求,此次请求中一般会携带一些敏感信息:

ID:标识 (微信公众号的APPId)

密码

grant字符串(code)

grant类型(可选、微信中默认为code)

四、D:服务器验证ID标识、密码、grant都正确后,返回AccessToken(注意:这里的AccessToken和以前通用接口、高级接口介绍的AccessToken没有关系,不能交叉使用)

五、E:客户端凭借AccessToken请求一系列的API,在此过程当中不会携带AppId,Secret,grant等敏感信息。

六、F:服务器返回请求结果
第一步是用户直接操做的,最后一步返回用户的基本信息 

微信中两种受权方式:


一、显示受权 snsapi_userinfo 特色:有受权,不管用户有无关注公众号,都能获得详细的信息 如 openId,昵称、头像 性别 、所在地区等等
二、静默受权:  snsapi_userinfo 特色:若是用户没有关注,只能得到OpenId

混合使用:先用静默受权 获取openId,若是尚未关注,就显示的受权,


增强帐号和密码的安全性:

 

一、客户端将密码加密后传输到服务器

二、服务器端使用”加盐“的方式进行混淆加密,严谨明文存储密码

三、尽可能不要使用Cookie存储用户名、尤为是OpenId,更不要在Url中传输OpenId

四、你必须知道:Session常规状况下也是依赖Cookie才能起做用的,因此不要觉得Session和客户端安全无关!

五、Https不能解决全部安全问题!

相关文章
相关标签/搜索