zoukankan      html  css  js  c++  java
  • 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不能解决所有安全问题!

  • 相关阅读:
    Kali之Metasploit生成apk后门控制安卓
    迅雷后台上传?干掉迅雷后台进程和服务的一个批处理
    不用第三方软件–一键开关笔记本电脑wifi热点的批处理
    【PHP】创蓝253云通讯国际短信余额查询请求demo
    【PHP】创蓝253云通讯平台国际短信API接口demo
    创蓝253云通讯平台---短信验证码接口说明
    C++调取国际短信验证码----创蓝253云通讯平台---demo
    手机空号、停机、注销,空号检测为你去除无效号码
    上市公司都被撸垮,羊毛党就真的没有办法解决了吗?
    如何用Ruby调取创蓝253短信验证码
  • 原文地址:https://www.cnblogs.com/ruiying/p/9324700.html
Copyright © 2011-2022 走看看