ホームページ  >  に質問  >  本文

php - 微信开发 限制页面只能在微信中打开 如何实现?

最近在做微信开发,但是一直忽略了一个问题 如何限制页面只能在微信中打开?

在PHP脚本中 可以通过判断 HTTP_USER_AGENT 来判断浏览器是否为微信内置浏览器

但今天看布丁移动下的 微车 公众平台中 很多页面限制只能在微信中打开 但是判断方式应该不是通过在脚本中判断浏览器的头信息,现请问 微车 中限制页面只能在浏览器中打开的思路是什么 ?

PHPzPHPz2749日前753

全員に返信(7)返信します

  • 阿神

    阿神2017-04-10 14:54:32

    微信里打开navigator.userAgent会有micromessenger

    返事
    0
  • PHP中文网

    PHP中文网2017-04-10 14:54:32

    微车调用了微信的OAuth2.0授权

    返事
    0
  • 黄舟

    黄舟2017-04-10 14:54:32

    微信有很多内置JS内置API,通过判断这些API是否存在也是可以的吧。
    http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html

    返事
    0
  • 怪我咯

    怪我咯2017-04-10 14:54:32

    上面基本都回答了

    1、js或程序判断,userAgent,是否包含micromessenger

    2、js判断微信相关特有函数

    3、调用oauth接口,如果不想用户感知的,可以调用scope=snsapi_base的方式,这个最后只能获得用户openid。scope=snsapi_userinfo方式,用户会看到一个授权页面,点击授权后,可以获得用户所有信息。

    返事
    0
  • 迷茫

    迷茫2017-04-10 14:54:32

    我现在做的项目,是微信公众号的,用户点击我们网站的时候,会去微信服务器获取用户openid,如果获取不到,就说明不是微信浏览器打开.这样用户只有在微信浏览器打开才可以进系统

    返事
    0
  • 黄舟

    黄舟2017-04-10 14:54:32

    前端的话最好不要通过 ua 来判断是否是微信内置浏览器,因为太容易伪造了。
    这样来判断

    if( typeof WeixinJSBridge !== "undefined" ) {
      return true;
    }

    返事
    0
  • 迷茫

    迷茫2017-04-10 14:54:32

    网页用微信打开必须要做微信oauth的网页授权吗?

    返事
    0
  • キャンセル返事