如何实现绑定微信账号后,在微信内访问 WebApp 免登录

2015 年 2 月 25 日
 fengchang

例如在tower.im的微信号里进入tower的webapp是不用再次登录的。但是看url里并没有写token。那是通过cookie或者localStorage存储的吗?还是微信提供了在公众号内可以自定义http header的功能?

8022 次点击
所在节点    程序员
11 条回复
66beta
2015 年 2 月 25 日
微信API可以获取用户微信ID啊,第一次注册关联下,下回看到微信ID就知道是谁了
members
2015 年 2 月 25 日
微信的Oauth接口可以获得用户的openid,第一次关联一下openid和账号。
Lenbo
2015 年 2 月 25 日
在网页内,可以调用微信的api获取用户openid,第一次关联,以后再进入页面检查openid,如果是已注册用户就不用登录了。
fengchang
2015 年 2 月 25 日
@Lenbo js SDK是吗,明白了
foccy
2015 年 2 月 25 日
iamjs
2015 年 2 月 25 日
@fengchang 拿到openid即可。
顺便提醒下,微信浏览器内的 cookie session localstorage等都是靠不住的。
可以用,但是需要做好随时失效的准备。再去读一下相关信息
qiayue
2015 年 2 月 25 日
做微信相关的,最好就是把所有的微信开发者文档通读一遍,每个接口测试一遍,看看需要传什么参数,返回的数据格式之类的
http://mp.weixin.qq.com/wiki/home/index.html

这样子的好处是,下次你有任何需求,都可以快速找到相应的 API
xuewl
2015 年 2 月 25 日
微信把链接发过去的时候,我一般都把openid发过去,用户通过浏览器访问的时候,直接替TA强制登录。
special
2015 年 2 月 25 日
偶是前 tower 工程师 && 负责微信这一块的,简单说下实现思路:

1. 如 @hackwjfz 所说通过 OAuth 接口获取 openid,并在一个表里将用户和 openid 绑定起来;
2. 下次登录在数据表匹配 openid,找到对应用户,登录之;
2. Cookie 保持登录状态;


一般的需求到这就差不多了,另外如 @iamjs 所说的,别把 openid 之类的敏感信息放在 Cookie。
dangyuluo
2015 年 2 月 25 日
@special 你好啊,我刚才测试了下tower,感觉非常不错。 注册后会生成一张二维码,我扫描关注后不需要任何操作就可以在tower微信公众主页内进行操作。二维码是使用了微信的临时二维码生成的么?然后我扫描带参数的二维码后,在subscribe事件发生时便将我的openid与tower项目绑定。是这样么?
special
2015 年 2 月 25 日
@dangyuluo 厉害,就是这样的,利用好微信官方的接口就可以实现了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/172720

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX