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不能解决所有安全问题!

  • 相关阅读:
    poj 1789 每个字符串不同的字母数代表两个结点间的权值 (MST)
    poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
    poj 1631 最多能有多少条不交叉的线 最大非降子序列 (LIS)
    hdu 5256 最少修改多少个数 能使原数列严格递增 (LIS)
    hdu 1025 上面n个点与下面n个点对应连线 求最多能连有多少条不相交的线 (LIS)
    Gym 100512F Funny Game (博弈+数论)
    UVa 12714 Two Points Revisited (水题,计算几何)
    UVa 12717 Fiasco (BFS模拟)
    UVa 12718 Dromicpalin Substrings (暴力)
    UVa 12716 && UVaLive 6657 GCD XOR (数论)
  • 原文地址:https://www.cnblogs.com/ruiying/p/9324700.html
Copyright © 2011-2022 走看看