公司有个应用需要用到登陆员工的姓名,所以这一篇讲下怎么获取通过接口登陆员工信息也就是免登。
通过获取当前用户的姓名或者id匹配自己数据库的员工信息实现免登。
流程是:获取code——通过code和access_token获取user_ticket——通过user_ticket获取员工信息
获取code:
微信实现网页登录需要用到网页OAuth2.0授权,理论我就不说了,直接说下如何实现。
网页必须要有域名,ip地址是不行的。
要实现网页登录必须要用OAuth2.0授权,说的通俗点就是你要把需要获取员工信息的页面地址处理下。
需要生成的url模板:https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID&state=STATE#wechat_redirect
下图是参数的说明:
可能会觉得有点难懂,我解释下,你只要把这个url模板中的参数换成你自己的,redirect_uri就是你要获取信息的页面比如我的是xxx.com/mian,但是要用urlencode处理一下,如何实现,等下会贴一个工具类。response_type用默认的code就可以了,scope有三个参数,分别有不同的权限,我用的是snsapi_userinfo,#wechat_redirect直接加在最后面就好了。
我写了个生成的工具类:
这样获取到的url就是已经处理过的,因为我获取信息的页面就是应用的主页,所以将这个url直接放到应用设置页面的工作台应用主页里。
这样在页面的后端就可以通过request.getParameter("code")获取到code了
后端代码:
通过code和access_token获取user_ticket
再通过user_ticket获取信息
下面贴具体实现代码:
1、用到的post工具类:
2、通过code获取——user_ticket——员工信息:
3、controller类:
4、前端用el表达式显示信息:
我后台使用的是SpringMVC框架,有什么不懂的可以私信我,我们可以讨论下。