关于微信登录

微信开发现在太火了,github上也可以找到很多牛人开发的代码。但是另一方面,微信自身提供的API和SDK又非常杂乱。从另一个方面来说,互联网上某个产品的成功,也许还真未必需要最好的技术。至少这件事可以通过时间来慢慢达到优秀。扯远了。

微信做为全中国使用最多的平台,自然受到各种网站、App的热捧 – 大家在上线的初期就会去考虑如何使用微信来获取尽可能多的用户。

我们如果只是做个“微店”,注册个公众账号,看起来似乎没有问题。但是,如果我们有一个Web站,想要接入微信登录时,就会掉到一个大坑。

微信会告诉你,先去注册一个“微信开放平台”,还要认证。然后在这里你可以使用网页登录接口。但是这个网页登录接口虽然仍然是oauth原理,但使用的是一套新的AppId和secret,所以通过这个网页登录接口获得的用户无法获得真正的openid,用这个openid毫无意义,你不能用来发送模板消息,然后貌似也就没有什么其他的用途了。

然后,你会看到“公众号第三方平台”,貌似可以解决这个问题,你可以还要申请、全网测试、做一些其他不知所谓的东西。但是这些东西不是给“第三方平台”做的吗?比如有赞什么的。

总之我走到这里的感觉是,我被微信那帮小朋友玩了。虽然也许他们自己不这么觉得。

网页登录这种接口真的有必要单独放到所谓“开放平台”做吗?在我的感觉来看,微信搞一堆开放平台纯粹是浪费程序员的生命啊!这个一定是程序员出身的产品经理做的,因为只有程序员才会坑程序员啊!

OK,既然到了这里,我们会发现,其实网页登录这种东东用原始的授权接口即可实现,只是要自己脏脏手而已。可是既然这样,微信搞个网页登录接口,还搞在“开放平台”里有个卵用?!

如何做呢?我这里就不上代码了,希望能看到这里的人,对一些起码的东西还是有点了解的。

第一步,生成一个我们自己的登录token(10分钟过期),然后作为一个生成一个URL,然后把这个URL做成二维码。

第二步,用户用微信扫描后,进入这个URL时,发起微信端的授权。在授权成功后,更新token的状态为登录成功,并标识用户的ID。

第三部,在二维码页面,使用JS定时去检查这个token是否登录成功,并获得相应的用户ID,登录它,页面给出提示。

好吧,就是这么简单。毫无技术含量,但是却是一坑见血!以微信现在的体量,想要变动一下还是比较慢的,也许这篇文章还能有点用。

Comments are closed.