怎么禁止电脑版浏览器访问网站,包括微信电脑版,只让微信手机客户端访问

怎么禁止电脑版浏览器访问网站,包括微信电脑版,只让微信手机客户端访问

阅读 10.3k
6 个回答

微信电脑版是完全模拟的微信手机客户端(至少腾讯是期望这么做),所以想要区分微信电脑版和微信手机客户端是不可能的。

至于禁止电脑版浏览器访问网站,只让微信手机客户端访问。

方法1,检查UA,简单但不十分有效,用户可以伪造UA。
方法2,检查openid,有效但有局限性,用户打开网页时,访问已验证的域名,微信会附带上openid作为参数(本身目的是用于微信登录),可以检查这个参数,有这个参数的话就可以确定是微信端访问了。

使用微信的自带的认证,去获取一下openid,然后就会出现微信禁止访问的界面

判断浏览器内核,或者楼上说的openid

    $content = file_get_contents ( 'php://input' );
    ! empty ( $content ) || die ( '这是微信请求的接口地址,直接在浏览器里无效' );
新手上路,请多包涵
  
   if(strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false)
   判断浏览器内核
新手上路,请多包涵
 var ua = navigator.userAgent.toLowerCase();
    var isWeixin = ua.indexOf('micromessenger') != -1; 
    var isMobile = ua.indexOf('mobile') != -1; 
    if (!isWeixin || !isMobile) {
        document.head.innerHTML = '<title>抱歉,出错了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/open/libs/weui/0.4.1/weui.css">';
        document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">请在微信手机客户端打开链接</h4></div></div>';
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题