網站接入qq登錄詳細教程:
- 到qq互聯平臺(https://connect.qq.com/)申請開發者資格,提交資料等待審覈通過(必須)
- 在應用管理界面創建應用,填寫網站信息,因爲只是測試,所以此處信息可以隨便寫 注意,網站回調域(畫紅線處)重要,一般是qq登錄後,處理信息的servlet地址,具體可查閱qq官方文檔
- 下載qq登錄所需的java sdk http://qzonestyle.gtimg.cn/qzone/vas/opensns/res/doc/qqConnect_Server_SDK_java_v2.0.zip 解壓得到把jar包放入自己的項目中,打開qqconnectconfig.properties, 前3項根據你申請的應用信息修改,第4項說明如下修改後把它放到項目的src目錄下
-
編寫Login.java,主要代碼如下
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); try { /* String authorizeURL = new Oauth().getAuthorizeURL(request);*/ response.sendRedirect(new Oauth().getAuthorizeURL(request)); } catch (QQConnectException e) { e.printStackTrace(); } }
- 編寫AfterLogin.java,主要代碼如下
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 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(); HttpSession session=request.getSession(); session.setAttribute("name", userInfoBean.getNickname()); session.setAttribute("avatar", userInfoBean.getAvatar().getAvatarURL30()); response.sendRedirect("index.jsp"); } }catch(Exception e){ e.printStackTrace(); } }
-
編寫登錄界面,放置qq登錄圖標,主要代碼如下
<a href="Login"><img src="img/Connect_logo_7.png"></a>
-
編寫index.jsp,主要代碼如下
<p>歡迎${sessionScope.name}</p> <img alt="" src="${sessionScope.avatar}">
-
運行login.jsp 點擊登錄
-
大功告成,有疑問的歡迎下方留言,一起交流學習