微信小程序如何实现静默登录
作者
小编给大家分享一下微信小程序如何实现静默登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.通过 wx.login获取 登录凭证(code)
wx.login({success:function(res){console.log(res.code);}})
2.在此处获得
appid 和 secret :https://developers.weixin.qq.com/sandbox
如图
3.小程序端
http://127.0.0.1:8080/jeecg-boot 这一段是自己的访问路径
//app.js App({ globalData:{ appid:'', appsecret:'',// openid:'' } onLaunch:function(){ varthat=this; //登录 wx.login({ success:function(res){ console.log(res.code) wx.request({ url:'http://127.0.0.1:8080/jeecg-boot/hwork/hworkLog/GetOpenIdServlet', data:{ appid:that.globalData.appid, secret:that.globalData.appsecret, js_code:res.code, grant_type:'authorization_code' }, method:'POST', header:{ 'Content-Type':'application/x-www-form-urlencoded' }, success:function(res){ console.log(res) //转json varj=JSON.parse(res.data.result) //获取到openid that.globalData.openid=j.openid; } }) } }) } })
4.后台代码
工具类
packageorg.jeecg.modules.hworkorder.util; importjava.io.BufferedReader; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.PrintWriter; importjava.net.HttpURLConnection; importjava.net.URL; publicclassWeChatService{ /** *调用对方接口方法 *@parampath对方或第三方提供的路径 *@paramdata向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析 */ publicstaticStringinterfaceUtil(Stringpath,Stringdata){ StringopenId=""; try{ URLurl=newURL(path); //打开和url之间的连接 HttpURLConnectionconn=(HttpURLConnection)url.openConnection(); PrintWriterout=null; //请求方式 //conn.setRequestMethod("POST"); ////设置通用的请求属性 conn.setRequestProperty("accept","*/*"); conn.setRequestProperty("connection","Keep-Alive"); conn.setRequestProperty("user-agent","Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)"); //设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个 //最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet, //post与get的不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。 conn.setDoOutput(true); conn.setDoInput(true); //获取URLConnection对象对应的输出流 out=newPrintWriter(conn.getOutputStream()); //发送请求参数即数据 out.print(data); //缓冲数据 out.flush(); //获取URLConnection对象对应的输入流 InputStreamis=conn.getInputStream(); //构造一个字符流缓存 BufferedReaderbr=newBufferedReader(newInputStreamReader(is)); Stringstr=""; while((str=br.readLine())!=null){ openId=str; System.out.println(str); } //关闭流 is.close(); //断开连接,最好写上,disconnect是在底层tcpsocket链接空闲时才切断。如果正在被其他线程使用就不切断。 //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。 conn.disconnect(); System.out.println("完整结束"); }catch(Exceptione){ e.printStackTrace(); } returnopenId; } publicstaticStringGetOpenID(Stringappid,Stringappsecret,StringCode){ //临时登录凭证 StringURL="https://api.weixin.qq.com/sns/jscode2session?appid="+appid+"&secret="+appsecret+"&js_code="+Code+"&grant_type=authorization_code"; StringopenId=interfaceUtil(URL,""); returnopenId; } }
@RestController @RequestMapping("/hwork/hworkLog") @Slf4j publicclasshworkLogContrller{ @RequestMapping(value="/GetOpenIdServlet",method=RequestMethod.POST) publicResult<String>GetOpenIdServlet(HttpServletRequestrequest,HttpServletResponseresponse){ Result<String>result=newResult<String>(); response.setContentType("text/html;charset=utf-8"); /*设置响应头允许ajax跨域访问*/ response.setHeader("Access-Control-Allow-Origin","*"); /*星号表示所有的异域请求都可以接受,*/ response.setHeader("Access-Control-Allow-Methods","GET,POST"); //转成json数据 Stringappid=request.getParameter("appid"); Stringsecret=request.getParameter("secret"); Stringjs_code=request.getParameter("js_code"); if(appid!=null&&appid!=""&&secret!=null&&secret!=""&&js_code!=null&&js_code!=""){ WeChatServicegetOpenId=newWeChatService(); StringopenId=getOpenId.GetOpenID(appid,secret,js_code); result.setResult(openId); result.setMessage("后台收到并返回"); }else{ result.setMessage("参数为空"); result.setSuccess(false); } returnresult; } }
到这里 就能得到openid了
以上是“微信小程序如何实现静默登录”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
目录
推荐阅读
-
小程序时代,珠宝品牌如何拥抱微信生态
-
微信小程序如何实现走马灯式抽奖
-
微信小程序怎么实现tabBar底部导航
-
微信小程序怎么实现前台循环数据绑定
微信小程序怎么实现前台循环数据绑定本文小编为大家详细介绍“微信小程...
-
微信小程序中怎么实现swiper组件构建轮播图
-
微信小程序怎么授权获取用户详细信息
-
微信小程序如何使用蓝牙链接
微信小程序如何使用蓝牙链接这篇文章主要介绍“微信小程序如何使用蓝牙...
-
微信小程序怎么实现本地缓存数据增删改查功能
微信小程序怎么实现本地缓存数据增删改查功能这篇文章主要介绍“微信小...
-
微信小程序中怎么实现GET请求
-
微信小程序怎么实现下拉刷新界面
微信小程序怎么实现下拉刷新界面这篇文章主要介绍“微信小程序怎么实现...
0 条评论
本站已关闭游客评论,请登录或者注册后再评论吧~