OAuth2.0 微信授权机制

我在了解设计Restful接口的时候,发现涉及到接口验证,可以利用OAuth2.0机制来验证。
我开发的微信端Web网页通过微信授权的时候,微信端也是用OAuth2.0机制来获取用户基本信息。

OAuth2.0

有四种授权模式:授权模式(微信)、简化模式(前者简化版)、密码模式、客户端模式。

授权模式(微信)

开发的微信端Web应用可以利用通过微信来获取用户基本信息,这样就免了用户去注册登录的繁杂步骤,只用点击微信的授权页面就能登录。

用户仅仅需要点击授权,Web应用就能通过微信拿到用户的微信基本信息,大大提高用户体验。

步骤

简化的步骤:Web后端拿到access_token,通过access_token去跟微信拿到用户信息。

所以关键是如何能够拿到access_token。

1. 用户授权

    "https://open.weixin.qq.com/connect/oauth2/authorize?"
        + "appid=APPID&"  // 代表你公众号
        + "redirect_uri=REDIRECTURL&" // 处理Code的URL地址
        + "response_type=code&" 
        + "scope=SCOPE&" // 要拿到用户的基本微信(需要授权)还是只拿到用户的openid
        + "state=STATE&connect_redirect=1#wechat_redirect"; // state 参数用来验证 防止csrf(跨站请求伪造)攻击

    这是微信官方页面,会出现授权按钮。

2. 获取access_token

   一旦用户在上述页面点击了授权,那么微信就会把code参数和state参数传输到我们redirect_uri后端。
    拿到state参数可用于验证,从而防止cstf。
    重点在于code参数的利用。

    "https://api.weixin.qq.com/"
        + "sns/oauth2/access_token?"
        + "appid=APPID&"
        + "secret=SECRET&"
        + "code=CODE&"
        + "grant_type=authorization_code";

    然后再通过微信的接口,发送我们的appid和appsecret以及code,然后就能拿到access_token和授权用户的openid。

3. access_token和openid

    通过access_token和openid 我们就能通过微信官方接口来获取授权用户的基本信息。

为什么access_token和openid就能拿到用户信息

1. 在微信官方页面,用户点击了授权(用户同意)

2. appsecret只有我们本身Web应用和微信才知道,同时redirect_uri也是登记在微信公众平台(Web应用的正确性)

转载于:https://www.cnblogs.com/sevenun/p/8984013.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值