通过微信小程序扫码,在PC端登陆跳转相应页面
通过微信小程序扫码,在PC端登陆跳转相应页面最近在做一个零食店,移动端采用微信小程序进行实现。当然,既然是零食店,那么肯定会有后台管理的,当时的想法是如何才能通过微信小程序里进行扫码去登陆PC端的管理平台呢?话不多说,接下来就说说我是怎么做到!? 扫码登陆流程 1、生成PC端页面二维码 这个二维码中放的什么信息呢,当时是能够唯一标识客户端的UUID啦,不然你扫码之后,应该给哪个客户端发送状态信息呢? 2、进入PC端管理页时,获取唯一标识,建立websocket连接,并且以该唯一标识作为key存放在map集合当中。 pc端代码
服务器端代码privatestaticConcurrentHashMap<StringSession> sessionMap <>(); @OnOpen publicvoid onOpen(Session session @PathParam"socketKey"String socketKey){ System.outprintln"websocket:"socketKey"--->建立成功" sessionMapputsession); } @OnClose onClose"--->断开连接"remove} 然后呢就是微信小程序端了,微信小程序通过扫码获取到该PC登陆页建立的websocket连接的唯一标识Key后,将自己的信息与这个key作为data请求后台接口。在后台接口中对用户信息进行校验,之后将校验结果发送给该key对应的session连接就可以啦 服务器端@RequestMapping"/getLoginCode") @ResponseBody Integer getLoginCodeHttpSession openId //在这里进行登陆信息验证 。。。。。。 //获取到websocket连接session的map LoginSocketgetSessionMap(); //将状态信息发送到客户端 currentSession sessionMapget currentSessiongetAsyncRemote().sendTextresponseJsonreturn resultgetCode();
wxscanCode({ scanType:'qrCode' socketKey result; appcheckSession openId wxgetStorageSync"openId"); wxrequest({ url: appbaseUrl '/getLoginCode' wxshowToast({ title'登陆成功' } }) fail}) 这里的websocket也可以替换为消息队列中间件,但是这样是不是大材小用了呢?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |