电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Java模擬實現QQ三方登錄(單點登錄2.0)

瀏覽:176日期:2022-05-29 08:18:42

本文實例為大家分享了Java模擬實現QQ三方登錄的具體代碼,供大家參考,具體內容如下

本次例子模擬這樣的情況:

Java模擬實現QQ三方登錄(單點登錄2.0)

一共有2個spring boot應用:

一個是某公司的web,第二個是QQ服務端。

某公司的應用為127.0.0.1:8082

QQ服務端為127.0.0.1:8081

演示如下:

Java模擬實現QQ三方登錄(單點登錄2.0)

點擊使用QQ登錄:

Java模擬實現QQ三方登錄(單點登錄2.0)

在彈出的界面輸入數據點擊登錄后:

Java模擬實現QQ三方登錄(單點登錄2.0)

關鍵代碼如下:

某公司web端:

MyController.java

package cn.it1995.login.controller; import cn.it1995.login.util.CookieUtil;import cn.it1995.login.util.Result;import com.alibaba.fastjson.JSON;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.ResponseEntity;import org.springframework.util.LinkedMultiValueMap;import org.springframework.util.MultiValueMap;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;import org.springframework.web.client.RestTemplate; import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import java.util.concurrent.ConcurrentMap; @RestControllerpublic class MyController { @Autowired private RestTemplate restTemplate; private static final String USER_KEY='user_key'; private ConcurrentMap<String, Object> user = new ConcurrentHashMap<>(); @GetMapping('/getUser') public Object getUser(HttpServletRequest request, HttpServletResponse response){ String loginCookie = CookieUtil.getLoginCookie(request, response); Object o = user.get(loginCookie); return Result.success(o); } @PostMapping('/loginByQQ') public Object loginByQQ(String token, HttpServletResponse response, HttpServletRequest request){ MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap(); paramMap.add('token', token); ResponseEntity<Object> objectResponseEntity = restTemplate.postForEntity('http://127.0.0.7:8081/getLoginInfo', paramMap, Object.class); Object body = objectResponseEntity.getBody(); String uuid = CookieUtil.setLoginCookie(request, response); //json標準化 String newJson = body.toString().replace('=', ':'); System.out.println(newJson); Map map = JSON.parseObject(newJson, Map.class); Map data = JSON.parseObject(map.get('data').toString(), Map.class); user.put(uuid, data); return Result.success(); }}

QQ服務端:

UserController.java

package cn.it1995.qqServer.controller; import cn.it1995.qqServer.util.JwtUtil;import cn.it1995.qqServer.util.Result;import com.alibaba.fastjson.JSON;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*; import java.util.HashMap;import java.util.Map;import java.util.UUID; @Controllerpublic class UserController { @ResponseBody @RequestMapping('/login') public Object login(@RequestParam('username') String username, @RequestParam('password') String password){ Map<String, Object> map = new HashMap<>(); map.put('username', username); map.put('password', password); String jwt = JwtUtil.createJWT(UUID.randomUUID().toString(), JSON.toJSONString(map), 3600 * 24); return jwt; } @ResponseBody @RequestMapping('/getLoginInfo') public Object getLoginInfo(String token){ String subject = JwtUtil.parseJWT(token).getSubject(); return Result.success().data(subject); } }

項目打包下載地址:SSODemo

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: qq
相關文章:
主站蜘蛛池模板: 水热合成反应釜-防爆高压消解罐-西安常仪仪器设备有限公司 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 微水泥_硅藻泥_艺术涂料_艺术漆_艺术漆加盟-青岛泥之韵环保壁材 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 土壤水分自动监测站-SM150便携式土壤水分仪-铭奥仪器 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 证券新闻,热播美式保罗1984第二部_腾讯1080p-仁爱影院 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 潍坊青州古城旅游景点攻略_青州酒店美食推荐-青州旅游网 | 二次元影像仪|二次元测量仪|拉力机|全自动影像测量仪厂家_苏州牧象仪器 | 耐腐蚀泵,耐腐蚀真空泵,玻璃钢真空泵-淄博华舜耐腐蚀真空泵有限公司 | 行吊_电动单梁起重机_双梁起重机_合肥起重机_厂家_合肥市神雕起重机械有限公司 | 防火窗_耐火窗_防火门厂家_防火卷帘门-重庆三乐门业有限公司 | 北京普辉律师事务所官网_北京律师24小时免费咨询|法律咨询 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 工控机-图像采集卡-PoE网卡-人工智能-工业主板-深圳朗锐智科 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 铁盒_铁罐_马口铁盒_马口铁罐_铁盒生产厂家-广州博新制罐 | 新疆十佳旅行社_新疆旅游报价_新疆自驾跟团游-新疆中西部国际旅行社 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 高柔性拖链电缆_卷筒电缆_耐磨耐折聚氨酯电缆-玖泰特种电缆 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 |