网站模板库
  • 首页
  • web前端工具
    • HTML/JS转换工具
    • JS/HTML格式化工具
    • 字母/英文大小写转换工具
    • robots.txt文件生成工具
    • Js压缩/格式化工具
    • Css在线压缩工具_代码格式化
  • 关于我们
    • 免责声明
    • 联系我们
    • 广告服务
    • 服务项目
    • 关于我们
    • 网站轮播
    • 公告
    • 成都优优科技专用
    • 按行业分类
  • web学院
    • 服务器教程
    • 学习资料
      • 基础书籍
      • 交互书籍
      • 入门教程
      • 特效分类
    • 案例分享
    • web资讯
  • 网页特效
    • 图片特效
    • 导航特效
    • 滑动按钮
    • 表单特效
    • 文字特效
    • 弹窗特效
    • 其他特效
  • 织梦模板
    • 科技/电子/数码/通信
    • 文化/艺术/广告/传媒
    • 装修/设计/家居/家具
    • 基建/施工/地产/物业
    • 餐饮/酒店/旅游/票务
    • 食品/果蔬/饮料/日用
    • 服饰/珠宝/礼品/玩具
    • 摄影/婚庆/家政/生活
    • 运动/健身/体育/器材
    • 学校/教育/培训/科研
    • 美容/保健/医院/医疗
    • 金融/财税/咨询/法律
    • 政府/组织/集团/协会
    • 汽车/物流/交通/搬运
    • 机械/设备/制造/仪器
    • 化工/环保/能源/材料
    • 农业/畜牧/养殖/宠物
    • 其他模版
    • IT/软件/信息/互联网
  • 手机模板
    • 手机APP模板
    • 微信小程序模板
    • wap
  • 网站模板
    • joomla模板
    • Drupal模板
    • z-blog模板
    • EyouCms模板
    • Bootstrap模板
    • 帝国cms模板
    • CmsEasy模板
    • MetInfo模板
    • 购物商城模板
      • Shopify主题
      • PrestaShop主题
    • 后台模板
    • 纯HTML模板
    • ecshop模板
    • phpwind模板
    • pbootcms模板
    • phpcms模板
    • wordpress模板
    • discuz模板
  • 教程
    • 织梦教程
    • Discuz教程
    • WordPress教程
    • Phpcms教程
    • Phpwind教程
    • ECShop教程
    • Joomla教程
    • Drupal教程
    • zblog教程
    • EyouCMS教程
    • 帝国cms教程
    • MetInfo教程
    • CmsEasy教程
登录
当前位置:网站模板库 > web学院 > 服务器教程 > 微信网页授权基本步骤
商业源码 服务器教程 2024-01-11 8:23:01

微信网页授权基本步骤

微信网页授权基本步骤,第1张

一、首先在微信公众平台配置授权回调地址(“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名);

二、关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

三、关于网页授权access_token和普通access_token的区别

1、微信网页授权是通过OAuth20机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

四、具体而言,网页授权流程分为四步:

1、 引导用户进入授权页面同意授权,获取code

    1)、 scope为snsapi_base

https://openweixinqqcom/connect/oauth2/authorizeappid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchongqqcom%2Fphp%2Findexphp%3Fd%3D%26c%3DwxAdap

ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas

e&state=123#wechat_redirect

scope为snsapi_userinfo

https://openweixinqqcom/connect/oauth2/authorizeappid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnbabluewebgamecom%2Foauth_responsephp&response_type=

code&scope=snsapi_userinfo&state=STATE#wechat_redirect

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期 。

2、 通过code换取网页授权access_token

首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

请求方法

获取code后,请求以下链接获取access_token:  https://apiweixinqqcom/sns/oauth2/access_tokenappid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

3、 刷新access_token(如果需要)

由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

请求方法

获取第二步的refresh_token后,请求以下链接获取access_token:

https://apiweixinqqcom/sns/oauth2/refresh_tokenappid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

4、 拉取用户信息(需scope为 snsapi_userinfo)

如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。

请求方法

http:GET(请使用https协议) https://apiweixinqqcom/sns/userinfoaccess_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

OpenID Connect简称为OIDC,已成为Internet上单点登录和身份管理的通用标准。 它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。

OAuth2实际上只做了授权,而OpenID Connect在授权的基础上又加上了认证。

OIDC的优点是:简单的基于JSON的身份令牌(JWT),并且完全兼容OAuth2协议。

今天我们将会介绍一下OIDC的具体原理。

OpenID Connect发布于2014年,是建立在OAuth 20协议之上的简单身份层,它允许客户端基于授权服务器或身份提供商(IdP)进行的身份验证来验证最终用户的身份,并获得用户的相关信息。

OpenID Connect提供了RESTful HTTP API,并使用Json作为数据的传递格式。

之前我们讲到了基于XML格式的SAML协议,而OpenID Connect因为其更加简洁的数据交换格式,被越来越多的应用使用,已经成为事实上的标准。

我们看一下OpenID connect的基本流程:

ID Token就像是一个用户的身份证,它是以JWT格式存在的,并且由OP进行签名,保证它的安全性。

获取ID Token的方式就是向OP发送认证请求。

因为ID Token是以JWT格式存在的,JWT可以分为三个部分,分别是Header,Payload和Signature。

这里我们主要关注一下Payload的json内容:

上面的是ID Token的标准Claims。

现在我们知道了ID Token是什么,那么在OpenID Connect的RP客户端如何请求一个ID Token呢?

虽然OpenID Connect并未指定应如何实际验证用户身份,这取决于提供者来决定。但是我们通常由Web浏览器来执行认证步骤。

浏览器将用户重定向到认证服务器的认证窗口,用户输入用户名和密码之后,通过OAuth 20协议请求ID token。

使用OAuth 20来获取ID Token有3种方式:

Authorization Code流程的步骤如下:

客户端准备身份认证请求,请求里包含所需要的参数

客户端发送请求到授权服务器

授权服务器对最红用户进行身份认证

授权服务得最终用户的统一/授权

授权服务器把最终用户发送回客户端,同时带着授权码

客户端使用授权码向Token端点请求一个响应

客户端接收到响应,响应的Body里面包含在和ID Token和Access Token

客户端验证ID Token,并获得用户的一些身份信息

上图就是一个隐式授权的例子,和Authorization Code模式不同的是,认证服务器返回的是一个access token片段,只有这个片段,我们是无法得到access token的。

这里我们需要额外请求一次client resource服务器,服务器将会返回一个script脚本,通过这个脚本,我们对access token片段进行解析,得到最终的access token。

混合模式比较少用到,它是前面两种模式的混合,它允许从前端和后端分别获取token值。

那么我们拿到请求得到的ID Token可以做什么事情呢?

服务器端不需要存储会话信息,我们只需要在服务器端对token进行验证即可。

这里我们举一个使用认证码授权获取到ID token的例子。

下面是一个重定向的例子:

在OP端,将会检测是否已经存在一个有效的用户session,否则将会弹出用户登录界面,让用户登录。

登录成功之后,client将会重定向到redirect_uri,并带上认证码:

上面返回的code只是一个中间产物,RP需要将code提交给OP换取ID token。

这次我们直接使用一个后端的POST请求:

如果成功,OP会返回一个JSON对象,带有ID token, access token 或者 refresh token:

其中ID token的格式是JWT。

我们获取到的ID token里面已经包含了一些非常有用的claims信息。

事实上ID Token还可以包含其他的user info信息:

比如name,profile,picture,email,gender,birthdate,phone_number,address等等有用的信息。

我们可以在token请求的时候添加上额外的scope:

比如上面的例子中,我们添加了额外的email信息,那么OP将会在token中加入email选项。

比如:

我们知道,服务号有获取用户基本信息的接口,通过oauth20网页授权获取的。但是认证的订阅号也有获取用户基本信息的接口了,但是与服务号不同的是,这个需要用户主动触发才可以获得,需要用户发送任意关键词或者点击菜单。

1、先获取openid,用户主动触发,获得openid

2、获取access_token

3、通过这两个获取用户基本信息,头像,昵称等

接口调用请求说明

http请求方式: GET

https://apiweixinqqcom/cgi

先在基本配置服务器地址填写下面php文件路径,其中php文件需要修改token

cheeckphp

然后去公众号回复任意关键词即可。

openid拿到了,该去拿access_token了。

也很容易。接口是:

https://apiweixinqqcom/cgi

把上面这两个参数(appid=修改,secret=修改)改成你公众号的即可,然后打开公众号基本配置,ip白名单,然后就可以正常获取access_token了。

接口调用请求说明

http请求方式: GET

https://apiweixinqqcom/cgi

把上面两个值加上去,访问这个链接即可。

转自: https://segmentfaultcom/a/1190000014963408

用户 网页 接口 基本信息 的是
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 微信网页授权基本步骤

商业源码 钻石

分享到:
上一篇
excel高手进来教一下这个超链接的原理和含义!
下一篇
请问怎么在服务器开FTP

相关推荐

服务器有那些分类

服务器有那些分类

企业微信首次登陆设置服务器

企业微信首次登陆设置服务器

怎么把共享文件夹创建在服务器上

怎么把共享文件夹创建在服务器上

云服务器租用价格多少钱一年?

云服务器租用价格多少钱一年?

0条评论

发表评论 取消回复

要发表评论,您必须先登录。

提供最优质的资源集合

立即查看 了解详情
网站模板库

主题/付费下载/查看/余额管理/自定义积分,集成支付,卡密,推广奖励等。

本站导航
  • 链接标题
友情链接
  • 链接标题
快速搜索
本站由钛宇宙强力驱动
友情链接:
    商业源码网蜀ICP备2023005044号
    网站模板库
    • 登录
    • 注册
    网站模板库
    • 首页
    • web前端工具►
      • HTML/JS转换工具
      • JS/HTML格式化工具
      • 字母/英文大小写转换工具
      • robots.txt文件生成工具
      • Js压缩/格式化工具
      • Css在线压缩工具_代码格式化
    • 关于我们►
      • 免责声明
      • 联系我们
      • 广告服务
      • 服务项目
      • 关于我们
      • 网站轮播
      • 公告
      • 成都优优科技专用
      • 按行业分类
    • web学院►
      • 服务器教程
      • 学习资料►
        • 基础书籍
        • 交互书籍
        • 入门教程
        • 特效分类
      • 案例分享
      • web资讯
    • 网页特效►
      • 图片特效
      • 导航特效
      • 滑动按钮
      • 表单特效
      • 文字特效
      • 弹窗特效
      • 其他特效
    • 织梦模板►
      • 科技/电子/数码/通信
      • 文化/艺术/广告/传媒
      • 装修/设计/家居/家具
      • 基建/施工/地产/物业
      • 餐饮/酒店/旅游/票务
      • 食品/果蔬/饮料/日用
      • 服饰/珠宝/礼品/玩具
      • 摄影/婚庆/家政/生活
      • 运动/健身/体育/器材
      • 学校/教育/培训/科研
      • 美容/保健/医院/医疗
      • 金融/财税/咨询/法律
      • 政府/组织/集团/协会
      • 汽车/物流/交通/搬运
      • 机械/设备/制造/仪器
      • 化工/环保/能源/材料
      • 农业/畜牧/养殖/宠物
      • 其他模版
      • IT/软件/信息/互联网
    • 手机模板►
      • 手机APP模板
      • 微信小程序模板
      • wap
    • 网站模板►
      • joomla模板
      • Drupal模板
      • z-blog模板
      • EyouCms模板
      • Bootstrap模板
      • 帝国cms模板
      • CmsEasy模板
      • MetInfo模板
      • 购物商城模板►
        • Shopify主题
        • PrestaShop主题
      • 后台模板
      • 纯HTML模板
      • ecshop模板
      • phpwind模板
      • pbootcms模板
      • phpcms模板
      • wordpress模板
      • discuz模板
    • 教程►
      • 织梦教程
      • Discuz教程
      • WordPress教程
      • Phpcms教程
      • Phpwind教程
      • ECShop教程
      • Joomla教程
      • Drupal教程
      • zblog教程
      • EyouCMS教程
      • 帝国cms教程
      • MetInfo教程
      • CmsEasy教程

      弹窗标题

      这是一条网站公告,可在后台开启或关闭,可自定义背景颜色,标题,内容,用户首次打开关闭后不再重复弹出,此处可使用html标签...