微信网页授权登录针对同时兼容pc和微信的网站

我们的网站是响应式布局, 兼容pc和手机, 之前实现了在pc端微信登录, 目前要实现在微信的自定义菜单中进入网站某功能实现自动登录

对于自定义菜单的设置我看网上有2种方法
方法1: 直接指定网站下某应用的真实url, 如:www.web.com/somthing, 用户访问时先判断当前用户session是否存在,如果存在(openid肯定存在库里面)就直接登录, 如果不存在就跳转到微信的authorize链接,之后按照正常流程

方法2:直接指定微信的authorize链接, 其中redirect_url设置成要进入到网站的真实地址, 同时在filter中进行一系列的数据获取和自动登录

但是我这种架构的网站, 如果用方法1的话, 区分不出来哪些是pc访问的哪些是微信访问的(其实还有手机直接访问)
; 方法2可以区分, 因为可以通过在filter中判断code和state是否存在来判断

如果用方法2呢, authorize链接中的state参数我就没法设置了, 只能写死!
因为流程是先在用户session中存一个state, 然后调用authorize链接看返回的state是否和session的一直来阻止csrf
而且每次进入我的网站都提示要授权

不知道有没有好的方法, 谢谢大家

阅读 6.6k
1 个回答

如果用方法1的话, 区分不出来哪些是pc访问的哪些是微信访问的(其实还有手机直接访问)

可以通过UA判断吗?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进