开发微信网页的童鞋应该都会涉及到微信授权登录了,微信官方文档对微信使用的步骤已经很明确的进行了说明了:1 第一步:用户同意授权,获取code
2 第二步:通过code换取网页授权access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用户信息(需scope为 snsapi_userinfo)
5 附:检验授权凭证(access_token)是否有效
我们主要是用java来对微信用户进行授权的实现,获取用户的信息保存到数据库中,之前的做法是在将授权页面交给前端,让前端获取code然后请求后端接口获取openid来获取用户信息,那样子的做法不是很好,因为对前端来说授权页面可能不仅仅是首页,而且还要与后端做多一步的数据对接,很是麻烦,所以现在是用后端直接授权获取用户信息然后再重定向到前端的页面。
具体操作如下:
首先创建一个Servlet:
这里用wechatOAuthServlet继承HttpServlet并重写doGet和doPost方法,doGet直接调用doPost,所以我们对网页授权的具体操作在doPost中操作!
这个wechatOAuthServlet在web.xml中设置:
很简单,当客户端发起/app/wechat/wechatOAuthServlet.do请求时就调用我们的wechatOAuthServlet这个类的doPost方法。
我们对获取微信code的回调url也设置是这个/app/wechat/wechatOAuthServlet.do的urlEncode:
doPost方法如下代码解释:
这样子前端就可以通过cookie判断用户是否登录了,若需要用户登录那么前端只要请求/app/wechat/wechatOAuthServlet.do这个链接就可以了!
------------------------------------------------------------------------------------------
推荐关注公众号「肯定会」,这里有java和Linux的干货哦~~~