微信开发 限制页面只能在微信中打开 如何实现?
在PHP脚本中 可以通过判断 HTTP_USER_AGENT 来判断浏览器是否为微信内置浏览器
但今天看布丁移动下的 微车 公众平台中 很多页面限制只能在微信中打开 但是判断方式应该不是通过在脚本中判断浏览器的头信息,现请问 微车 中限制页面只能在浏览器中打开的思路是什么 ?
回复内容:
最近在做微信开发,但是一直忽略了一个问题 如何限制页面只能在微信中打开?
在PHP脚本中 可以通过判断 HTTP_USER_AGENT 来判断浏览器是否为微信内置浏览器
但今天看布丁移动下的 微车 公众平台中 很多页面限制只能在微信中打开 但是判断方式应该不是通过在脚本中判断浏览器的头信息,现请问 微车 中限制页面只能在浏览器中打开的思路是什么 ?
微信里打开navigator.userAgent会有micromessenger
微车调用了微信的OAuth2.0授权
微信有很多内置JS内置API,通过判断这些API是否存在也是可以的吧。
http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html
我现在做的项目,是微信公众号的,用户点击我们网站的时候,会去微信服务器获取用户openid,如果获取不到,就说明不是微信浏览器打开.这样用户只有在微信浏览器打开才可以进系统
上面基本都回答了
1、js或程序判断,userAgent,是否包含micromessenger
2、js判断微信相关特有函数
3、调用oauth接口,如果不想用户感知的,可以调用scope=snsapi_base的方式,这个最后只能获得用户openid。scope=snsapi_userinfo方式,用户会看到一个授权页面,点击授权后,可以获得用户所有信息。
前端的话最好不要通过 ua 来判断是否是微信内置浏览器,因为太容易伪造了。
这样来判断
if( typeof WeixinJSBridge !== "undefined" ) {
return true;
}
网页用微信打开必须要做微信oauth的网页授权吗?