日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

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

一、什么是第三方登錄,第三方登陸平臺(tái)如何選擇

1.簡介

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

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

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

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

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

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

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

5.第三方登錄平臺(tái)該如何選擇

謂的第三方登錄,就是利用用戶在第三方平臺(tái)上已有的賬號來快速完成自己應(yīng)用的登錄或者注冊的功能。而這里的第三方平臺(tái),一般是已經(jīng)有大量用戶的平臺(tái),如國內(nèi)關(guān)注度較高的騰訊QQ互聯(lián)平臺(tái) 、百度第三方賬號登陸,一登人臉登錄等等。更多關(guān)于第三方登錄,第三方登錄平臺(tái),第三方登錄SDK,集成過程及開發(fā)建議可百度“開發(fā)者服務(wù)”學(xué)習(xí)。

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

二、QQ第三方平臺(tái)介紹:

1.基本要求:

我們需要有自己的服務(wù)器

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

如果上面的要求沒有到達(dá),那就趕快去實(shí)現(xiàn)吧。。。。

2.平臺(tái)介紹:

2.1進(jìn)入官網(wǎng)首頁:https://connect.qq.com/index.html

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

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

2.3創(chuàng)建網(wǎng)站應(yīng)用

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

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

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

2.5查看信息

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

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

我們前提工作要做哈。基礎(chǔ)搭建好,根基才穩(wěn)。。。:tw-1f38e: :tw-1f38f:

三、實(shí)戰(zhàn)教程

1.基礎(chǔ)配置:

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

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

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

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

app_ID =(這里就是你的應(yīng)用的APPID) app_KEY =(這里就是你的應(yīng)用的APPKEY) redirect_URI =(這里是你設(shè)置的回調(diào)地址) 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

我們只需要修改上面的前三個(gè)就可以哦,其他可以不同改動(dòng)。。。

2.代碼實(shí)現(xiàn)

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登錄的回調(diào)方法 * @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('登錄失敗:沒有獲取到響應(yīng)參數(shù)');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 去獲取當(dāng)前用的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網(wǎng)名中的特殊表情 * @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

這個(gè)接口是跳轉(zhuǎn)QQ登陸界面------》當(dāng)我們點(diǎn)擊QQ登陸按鈕或者是超鏈接都可以跳轉(zhuǎn)到我們的QQ登陸界面,登陸成功后會(huì)自動(dòng)進(jìn)入到我們的回調(diào)地址進(jìn)行授權(quán)

2.2.2 回調(diào)地址: /fc/connection

這里需要特殊說明,這個(gè)回調(diào)地址需要和你的創(chuàng)建應(yīng)用的地址一致

SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)

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

四、最后補(bǔ)充

1.實(shí)現(xiàn)這個(gè)QQ登陸操作需要把項(xiàng)目上傳到我們的服務(wù)器上運(yùn)行2.可能你們設(shè)置的回調(diào)帶有端口,那么就需要在服務(wù)器上安裝Nginx,反向代理到我們的回調(diào)方法

到此這篇關(guān)于SpringBoot集成QQ第三方登陸的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot集成QQ第三方登陸內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: qq
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品无播放器在线播放| 亚洲视频www| 婷婷成人在线| www在线观看黄色| 欧美成人精品三级网站| 欧美69视频| 蜜臀91精品一区二区三区| 中文字幕一区二区三区四区久久 | 国产一区二区三区久久久久久久久| 精品五月天堂| 激情综合亚洲| 天堂久久av| 乱一区二区av| 九九综合九九| 美女被久久久| 国产欧美另类| 亚洲成人va| 亚洲+小说+欧美+激情+另类| 国产精品mv在线观看| 成人羞羞视频播放网站| 亚洲精品观看| 六月丁香综合在线视频| 激情自拍一区| 日韩高清三区| 日韩欧美一区二区三区在线视频| 久久成人亚洲| 麻豆精品av| 日韩午夜高潮| 久久99精品久久久野外观看| 成人久久一区| 日韩欧美精品一区二区综合视频| 98精品视频| 亚洲免费专区| 高清久久一区| 亚洲精品黄色| 久久天堂av| 日韩福利视频网| 久久视频一区| 国产探花一区在线观看| 欧美中文字幕一区二区| 日韩精品1区2区3区| 欧美日韩一二| 欧美经典一区| 久久av在线| 精品国产乱码久久久久久1区2匹| 欧美亚洲精品在线| 国产精品igao视频网网址不卡日韩| 日韩精品久久久久久久电影99爱| 69堂免费精品视频在线播放| 欧美不卡在线| 久久精品国产99| 亚洲日本欧美| 韩日一区二区三区| 国产精品蜜芽在线观看| 日韩黄色av| 亚洲综合欧美| 久久精品亚洲人成影院| 欧美激情一区| 婷婷视频一区二区三区| 久久美女精品| 精品国产一区二区三区性色av| 亚洲最大av| 国产视频一区三区| 黄色aa久久| 免费日韩成人| 久久国产乱子精品免费女| 日韩午夜黄色| 今天的高清视频免费播放成人| 高清精品久久| 精品日韩一区| 国产精品大片| 日韩不卡一二三区| 亚洲综合中文| 亚洲综合图色| 99国产精品久久久久久久| 久久裸体视频| 亚洲性色av| а√天堂中文在线资源8| 久久久国产精品网站| 久久国产婷婷国产香蕉| 日韩高清在线一区| 婷婷综合国产| 日韩区欧美区| 日韩国产一区二| 日韩极品在线观看| 亚洲区欧美区| 亚洲精品大全| 亚洲欧洲美洲国产香蕉| 免费在线观看精品| 99日韩精品| 国产精品腿扒开做爽爽爽挤奶网站| 国产一区视频在线观看免费| 三级小说欧洲区亚洲区| 久久久噜噜噜| 亚洲激情中文| 在线亚洲观看| 亚洲欧美久久精品| 日韩和欧美的一区| 久久精品xxxxx| 国产日韩免费| 精品理论电影在线| 日韩欧美一区二区三区免费看| 成人va天堂| 99亚洲视频| 亚洲精品免费观看| 日本成人在线一区| 国产精品蜜月aⅴ在线| 鲁大师精品99久久久| 超级白嫩亚洲国产第一| 亚洲成人二区| 三级欧美在线一区| 青青草国产成人99久久| 国产高清亚洲| 日韩免费小视频| 国产亚洲网站| 日韩精品一页| 九九久久国产| 激情久久久久久| 在线看片日韩| 国产欧美日韩一区二区三区在线| 久久97久久97精品免视看秋霞| 国产精品久久久久久久久久10秀| 精品捆绑调教一区二区三区| 99热精品在线| 国产亚洲欧美日韩精品一区二区三区 | 四虎影视精品| 99久久婷婷这里只有精品| 黄色在线一区| 奇米狠狠一区二区三区| 国产一区丝袜| 日韩午夜精品| 国产美女视频一区二区| 午夜精品成人av| 久久先锋影音| 精品国产不卡| 黄色精品网站| 综合一区在线| 日韩福利一区| 视频精品一区| 亚洲成av在线| 日韩高清在线一区| 日韩国产一区| 日本不卡高清视频| 日韩免费福利视频| 日韩国产在线一| 亚洲91久久| 国产精品久久乐| 91国语精品自产拍| 国产精品久久久久久久久久白浆 | 四虎4545www国产精品 | 亚洲视频电影在线| 精品视频久久| 亚洲精品1区2区| 国产精品一区高清| 欧美专区18| 超碰99在线| 国产乱码精品一区二区三区亚洲人 | 国产一区二区三区不卡视频网站 | 国产 日韩 欧美 综合 一区| 日本大胆欧美人术艺术动态| 国产在线观看www| 69堂免费精品视频在线播放| 久草免费在线视频| 日韩高清电影一区| 性色av一区二区怡红| 日韩国产91| 久久高清精品| 美女久久久久久| 蜜桃av一区二区在线观看| av中文字幕在线观看第一页 | 亚洲v在线看| 麻豆91小视频| 日韩国产欧美三级| 午夜在线视频一区二区区别| 涩涩av在线| 精品视频一二| 欧美精品福利| 精品欧美激情在线观看| 四虎国产精品免费观看| 久久国内精品| 亚洲18在线| 石原莉奈在线亚洲二区| 亚洲女同一区| 性感美女一区二区在线观看| 久久精品福利| 国产精品白丝久久av网站| 好看的亚洲午夜视频在线| 99免费精品| 亚洲成av在线| 九九精品调教| 日韩在线中文| 肉色欧美久久久久久久免费看| 九九99久久精品在免费线bt| 黄色成人在线网址| 午夜久久中文| 黑森林国产精品av| 欧美日韩视频免费看| 亚洲欧美日韩专区| 日韩亚洲精品在线| 欧美日韩国产探花|