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

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

SpringBoot集成QQ第三方登陸的實現

瀏覽:117日期:2022-06-16 15:13:50

一、什么是第三方登錄,第三方登陸平臺如何選擇

1.簡介

第三方登錄不得不說的一個優勢:那就是本地注冊和第三方注冊的選擇。雖然這是一個不能稱之為問題的問題,其中的心理學不得不說:做為一個app的新用戶,你有兩個選擇:1.做一個很受歡迎的用戶,注冊帳號,完善信息,over。2.選用第三方登錄/注冊,簡單方便。二者供你選擇,隨心挑選。

2.普通注冊分多種情況:

1.傳統的注冊方式,注冊門檻較高,易在注冊頁面流失用戶。 2.第三方登錄后,隨機分配一個id 3.郵件注冊,id手動填寫并且不能重復 App開發過程中登錄的選擇還是視情況而定。

3.用戶眼中的第三方登陸

第三方登錄簡單快捷,每天面對不同的平臺不同的登錄界面能有一種簡單登錄的方式再好不過了。第三方登錄可以將自己在某個app的動態信息同步到各個sns平臺,這一功能無疑攬了一大批“懶”用戶,瀟瀟灑灑一號走江湖。不免擔心的是第三方登錄有很多資料信息可以公用,比較保守的人就慎重了,互聯網時代,信息也保密不到哪去。

4.本地客戶端眼中的第三方登錄

簡化登錄過程,降低注冊門檻,更能獲取海量用戶,在爭搶用戶,提高用戶轉化率注冊量是不可缺少的重要因素。本地注冊的穩定+第三方登錄的便捷才是最合適的登錄方案。

5.第三方登錄平臺該如何選擇

謂的第三方登錄,就是利用用戶在第三方平臺上已有的賬號來快速完成自己應用的登錄或者注冊的功能。而這里的第三方平臺,一般是已經有大量用戶的平臺,如國內關注度較高的騰訊QQ互聯平臺 、百度第三方賬號登陸,一登人臉登錄等等。更多關于第三方登錄,第三方登錄平臺,第三方登錄SDK,集成過程及開發建議可百度“開發者服務”學習。

好了,上面說了這么多,也是無濟于事,我們開始我們的正餐

二、QQ第三方平臺介紹:

1.基本要求:

我們需要有自己的服務器

我們需要自己的域名(且已備案)

如果上面的要求沒有到達,那就趕快去實現吧。。。。

2.平臺介紹:

2.1進入官網首頁:https://connect.qq.com/index.html

2.2審核信息:(需要提交信息審核)

SpringBoot集成QQ第三方登陸的實現

2.3創建網站應用

SpringBoot集成QQ第三方登陸的實現

2.4創建成功(需要審核通過后才能使用)

SpringBoot集成QQ第三方登陸的實現

2.5查看信息

SpringBoot集成QQ第三方登陸的實現

OKOK,到這一步我們的介紹信息就完成了,起始跟代碼一點關系還沒有。

我們前提工作要做哈。基礎搭建好,根基才穩。。。:tw-1f38e: :tw-1f38f:

三、實戰教程

1.基礎配置:

1.1首先還是我們的關心的POM文件(只添加了QQ的依賴)

<!-- QQ登錄依賴包 --> <dependency> <groupId>net.gplatform</groupId> <artifactId>Sdk4J</artifactId> <version>2.0</version> </dependency>

1.2 application.yml文件:這里就不用列出來了,只配置了一個端口:server.port=80

1.3 qqconnectconfig.properties(qq登陸相關的配置文件)

app_ID =(這里就是你的應用的APPID) app_KEY =(這里就是你的應用的APPKEY) redirect_URI =(這里是你設置的回調地址) scope = get_user_info,add_topic,add_one_blog,add_album,upload_pic,list_album,add_share,check_page_fans,add_t,add_pic_t,del_t,get_repost_list,get_info,get_other_info,get_fanslist,get_idollist,add_idol,del_ido,get_tenpay_addr(u8BF7u4FEEu6539u6B64u5904) baseURL = https://graph.qq.com/ getUserInfoURL = https://graph.qq.com/user/get_user_info accessTokenURL = https://graph.qq.com/oauth2.0/token authorizeURL = https://graph.qq.com/oauth2.0/authorize getOpenIDURL = https://graph.qq.com/oauth2.0/me addTopicURL = https://graph.qq.com/shuoshuo/add_topic addBlogURL = https://graph.qq.com/blog/add_one_blog addAlbumURL = https://graph.qq.com/photo/add_album uploadPicURL = https://graph.qq.com/photo/upload_pic listAlbumURL = https://graph.qq.com/photo/list_album addShareURL = https://graph.qq.com/share/add_share checkPageFansURL = https://graph.qq.com/user/check_page_fans addTURL = https://graph.qq.com/t/add_t addPicTURL = https://graph.qq.com/t/add_pic_t delTURL = https://graph.qq.com/t/del_t getWeiboUserInfoURL = https://graph.qq.com/user/get_info getWeiboOtherUserInfoURL = https://graph.qq.com/user/get_other_info getFansListURL = https://graph.qq.com/relation/get_fanslist getIdolsListURL = https://graph.qq.com/relation/get_idollist addIdolURL = https://graph.qq.com/relation/add_idol delIdolURL = https://graph.qq.com/relation/del_idol getTenpayAddrURL = https://graph.qq.com/cft_info/get_tenpay_addr getRepostListURL = https://graph.qq.com/t/get_repost_list version = 2.0.0.0

我們只需要修改上面的前三個就可以哦,其他可以不同改動。。。

2.代碼實現

2.1LoginController

我們只需要寫好我們的接口就完成了。。。

package com.fc.blog.controller.blog;import com.qq.connect.QQConnectException;import com.qq.connect.api.OpenID;import com.qq.connect.api.qzone.UserInfo;import com.qq.connect.javabeans.AccessToken;import com.qq.connect.javabeans.qzone.UserInfoBean;import com.qq.connect.oauth.Oauth;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import java.io.IOException;import java.util.Map;/** * 用戶登陸 */@Controller@RequestMapping('fc')public class LoginController {​

private static final Logger LOGGER = LoggerFactory.getLogger(LoginController.class); /** * 請求QQ登陸頁面 * @param request * @param response * @return */ @GetMapping('qq') public void loginByQQ(HttpServletRequest request, HttpServletResponse response){ response.setContentType('text/html;charset=utf-8'); try { response.sendRedirect(new Oauth().getAuthorizeURL(request)); LOGGER.info('請求QQ頁面中。。。。'); } catch (QQConnectException | IOException e) { e.printStackTrace(); LOGGER.error('請求QQ頁面失敗'); } }

/** * @Description QQ登錄的回調方法 * @Author xw * @Date 11:25 2020/2/21 * @Param [request, response, map] * @return java.lang.String **/ @RequestMapping('connection') public String connection(HttpServletRequest request, HttpServletResponse response, Map<String,Object> map) { try { AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request); String accessToken = null, openID = null; long tokenExpireIn = 0L; if (''.equals(accessTokenObj.getAccessToken())) {LOGGER.error('登錄失敗:沒有獲取到響應參數');return 'redirect:/'; } else {accessToken = accessTokenObj.getAccessToken();tokenExpireIn = accessTokenObj.getExpireIn();LOGGER.info('accessToken' + accessToken);request.getSession().setAttribute('demo_access_token', accessToken);request.getSession().setAttribute('demo_token_expirein', String.valueOf(tokenExpireIn));// 利用獲取到的accessToken 去獲取當前用的openid -------- startOpenID openIDObj = new OpenID(accessToken);openID = openIDObj.getUserOpenID();UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();if (userInfoBean.getRet() == 0) { String name = removeNonBmpUnicode(userInfoBean.getNickname()); String imgUrl = userInfoBean.getAvatar().getAvatarURL100(); HttpSession session = request.getSession(); session.setAttribute('openId',openID); session.setAttribute('name',name); session.setAttribute('imgUrl',imgUrl); return 'redirect:/';} else { LOGGER.error('很抱歉,我們沒能正確獲取到您的信息,原因是: ' + userInfoBean.getMsg()); return 'admin/404';} } } catch (QQConnectException e) { e.printStackTrace(); LOGGER.error('QQ登陸失敗'); return 'admin/404'; } }

/** * @Description 處理掉QQ網名中的特殊表情 * @Author xw * @Date 11:26 2020/2/21 * @Param [str] * @return java.lang.String **/ public String removeNonBmpUnicode(String str) { if (str == null) { return null; } str = str.replaceAll('[^u0000-uFFFF]', ''); if (''.equals(str)) { str = '($ _ $)'; } return str; }}

2.2代碼講解:

2.2.1 QQ登陸界面: /fc/qq

http://域名/fc/qq

這個接口是跳轉QQ登陸界面------》當我們點擊QQ登陸按鈕或者是超鏈接都可以跳轉到我們的QQ登陸界面,登陸成功后會自動進入到我們的回調地址進行授權

2.2.2 回調地址: /fc/connection

這里需要特殊說明,這個回調地址需要和你的創建應用的地址一致

SpringBoot集成QQ第三方登陸的實現

在這里我們的代碼就完成了,是不是很簡單呢,是的,那些方法都是封裝好了的,我們只需要調用就是了。。。。

四、最后補充

1.實現這個QQ登陸操作需要把項目上傳到我們的服務器上運行2.可能你們設置的回調帶有端口,那么就需要在服務器上安裝Nginx,反向代理到我們的回調方法

到此這篇關于SpringBoot集成QQ第三方登陸的實現的文章就介紹到這了,更多相關SpringBoot集成QQ第三方登陸內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: qq
相關文章:
主站蜘蛛池模板: 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 工业硝酸钠,硝酸钠厂家-淄博「文海工贸」 | 比亚迪叉车-比亚迪电动叉车堆垛车托盘车仓储叉车价格多少钱报价 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 卧涛科技有限公司科技项目申报公司|高新技术企业申报|专利申请 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 震动筛选机|震动分筛机|筛粉机|振筛机|振荡筛-振动筛分设备专业生产厂家高服机械 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 上海律师事务所_上海刑事律师免费咨询平台-煊宏律师事务所 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 智慧钢琴-电钢琴-便携钢琴-数码钢琴-深圳市特伦斯乐器有限公司 | 海南在线 海南一家 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 合肥卓创建筑装饰,专业办公室装饰、商业空间装修与设计。 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 深圳APP开发_手机软件APP定制外包_小程序开发公司-来科信 | 上海阳光泵业制造有限公司 -【官方网站】 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | 挨踢网-大家的导航! | 建筑资质代办-建筑资质转让找上海国信启航 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | VI设计-LOGO设计公司-品牌设计公司-包装设计公司-导视设计-杭州易象设计 | 江门流水线|江门工作台|江门市伟涛行工业设备有限公司 | 涡街流量计_LUGB智能管道式高温防爆蒸汽温压补偿计量表-江苏凯铭仪表有限公司 | 辊道窑炉,辊道窑炉厂家-山东艾希尔 | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | DAIKIN电磁阀-意大利ATOS电磁阀-上海乾拓贸易有限公司 | 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | 广州昊至泉水上乐园设备有限公司|