网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 推广营销 » 正文

wangxiaoyingBlog

2019-8-2 0:11:37 | 作者:老铁SEO | 0个评论 | 人浏览

  2.在微信客户端中访问第三方网页,为什么会出现一个页面,上面要获取你的个人信息,让你确定后才能进入呢?

  二、解答这两个问题之前,我们先了解一点微信开发的规范。(此处参看微信公众平台开发文档)

  为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID,可以在用户管理-获取用户基本信息(UnionID机制)文档了解详情。

  1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 等协议头;

  2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:,配置以后此域名下面的页面、 都可以进行OAuth2.0鉴权。但、 、 无法进行OAuth2.0鉴权

  3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可

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

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

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

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

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

  1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(绑定公众号后,才可利用UnionID机制来满足上述需求。

  2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。

  1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;

  2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。

  言归正传,首先解答下第一个问题,很简单,因为开发的时候,咱们都会知道,开发的是不是微信端页面(哈哈)。要求在微信里打开的,可能需要获取微信头像,所在地区等参数。如果在浏览器里面直接打开的话,这些参数获取不到,可能后面的程序就没法往下执行,所以要求用微信客户端打开。

  是不是微信客户端打开,就是判断打开链接的浏览器是什么的呗,这里只需要用js判断一下就行了,下面是代码,顺带赠送,安卓和ios客户端的判断,网上一搜也是一大把。

  关于这个问题,这就涉及到微信网页授权,如果你一直不理解,我建议,你把我上面的标题二,认真多读个几遍,书读百遍其义自见,一点都不假,关键你得用心读下去,或者看开发文档(),拿走不谢。

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

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

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

  第一步:点击url链接,判断用户是否登录(方法:根据查找本地是否有基础的access_token)

  第二步:如果查到基础的access_token(一个凭证),则已经登录,就跳转到相应的页面

  3.后端拿到code,换取特殊的网页授权access_token(问题二的第二步,本步骤中获取到网页授权access_token的同时,也获取到了openid(用户的唯一标识),问题二的第三步和第四步均可执行)

  a、在用户系统。返回给前端基础的access_token,前端将基础的access_token存在本地(本地有了基础的access_token,下次登录即可直接跳转目的页),跳转页面

  b、不在用户系统。后端返给前端该用户的openId,输入手机号和验证码,调接口,把openId,手机传给后台,后台将信息存入用户系统,生成一个基础的access_token凭证,返回给前端,前端存储,跳转页面,接下来Ajax请求API时,带上token,过滤器校验token,通过就返回数据,展示数据,未通过就返回错误码提示错误信息

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:网页威信  
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。