日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

web接入QQ第三方登录

發布時間:2023/12/8 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 web接入QQ第三方登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:https://blog.csdn.net/cwfjimogudan/article/details/54135957

這是第三方登錄的第二篇,關于web接入微博第三方登錄可以參考我之前的博文,之前的博文比較詳細的講解了該如何進行第三方登錄的申請和準備工作。?
http://blog.csdn.net/cwfjimogudan/article/details/53946714

接入qq第三方登錄比接入微博第三方登錄要麻煩,主要是因為前期的準備工作較麻煩,需要進行域名備案,備案通過后才能在qq互聯平臺上通過應用審核。

我在做項目的時候,備案是通過阿里云服務器進行的,備案大概需要半個月的時間,所以這個周期還是很長的。備案的流程很簡單,就是需要比較長的時間,這里就不做介紹了。

qq登錄和微博登錄的基本開發過程是差不多的,所以在這里我就不做特別詳細的介紹了。

下面直接介紹如何接入qq第三方登錄吧。

首先需要登錄qq互聯的網站,完成用戶開發者信息的驗證。

審核通過后,需要在qq互聯上創建應用,并進行審核。沒有通過備案的域名是不能通過審核的,所以需要先進行域名備案。

審核通過后就可以獲得應用的appid和appkey。

下面我們就可以進行項目的開發了。

下載qq互聯的java sdk?
http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD?
sdk中包含了項目的demo程序,demo像我們展示了接入第三方登錄的流程。?
(1)編寫配置文件qqconnectconfig.properties?
這里面有三個值需要我們修改,分別是appid,appkey和redirect_URI。?
前面兩個值可以通過qq互聯的應用管理獲得,redirect_URI是值使用第三方登錄頁面登錄成功后的跳轉地址,這個地址需要與qq互聯上保持一致,不然跳轉到qq登錄頁面會報錯。?

(2)引入開發需要的jar包?
項目如果詞語maven進行管理的話,可以在pom.xml中加入下面的依賴

<dependency><groupId>net.gplatform</groupId><artifactId>Sdk4J</artifactId><version>2.0</version></dependency>

(3)編寫跳轉按鈕事件?
這里使用springmvc來進行開發,這個controller相應qq.do的請求,這個請求調用response.sendRedirect(new Oauth().getAuthorizeURL(request));會將頁面重定向到qq第三方的登錄頁面。

import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;import com.qq.connect.QQConnectException; import com.qq.connect.oauth.Oauth;@Component @RequestMapping("/qq.do") public class qqloginController {@RequestMappingpublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {response.setContentType("text/html;charset=utf-8");try {response.sendRedirect(new Oauth().getAuthorizeURL(request));} catch (QQConnectException e) {e.printStackTrace();}return null;} }

?

(4)編寫回調controller

用戶在第三方登錄頁面登錄成功后,我們就可以進行登錄信息獲取了,這個時候頁面會自動跳轉到我們上面配置的redirect_URI的地址。

import java.io.PrintWriter;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView;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;@Component @RequestMapping("/afterlogin.do") public class afterlogin {@RequestMappingpublic ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {try {AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);String accessToken = null,openID = null;long tokenExpireIn = 0L;if (accessTokenObj.getAccessToken().equals("")) {System.out.print("沒有獲取到響應參數");}else{accessToken = accessTokenObj.getAccessToken();tokenExpireIn = accessTokenObj.getExpireIn();OpenID openIDObj = new OpenID(accessToken);openID = openIDObj.getUserOpenID();UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();String name = userInfoBean.getNickname();System.out.println("歡迎你," + name + "!");}}catch(Exception e){e.printStackTrace();}return null;} }

總結

以上是生活随笔為你收集整理的web接入QQ第三方登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。