package com.qq;
import java.io.IOException;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.strongit.ec.common.service.ICommonService;
import com.strongit.member.bo.TippMemberInfo;
import com.strongit.template.engine.AbstractDataHandler;
import com.strongit.template.util.TencentqqAccessToken;
import com.strongit.template.util.TencentqqOauthApiUtil;
public class QQLogin extends AbstractDataHandler {
protected String execute(HttpServletRequest request,
HttpServletResponse response) throws IOException {
//初始化容器
ApplicationContext context = WebApplicationContextUtils
.getWebApplicationContext(request.getSession()
.getServletContext());
//取得bean实例
ICommonService commonManager = (ICommonService) context
.getBean("ipp.ec.service.CommonService");
//取得bean实例
QQVuserGenerator qqGen = (QQVuserGenerator)context.getBean("ipp.qq.qqlogin");
// TODO Auto-generated method stub
// 获取Authorization Code
String authorization_code = request.getParameter("code");
System.out.println("...................code = "+authorization_code);
//下一步
// 使用Authorization Code换取Access Token
TencentqqAccessToken accessToken = TencentqqOauthApiUtil
.getAccessTokenAndOpenId(authorization_code);
System.out.println("..............accessToken = "+accessToken);
//再下一步取得Accesstoken
accessToken = TencentqqOauthApiUtil.getLoginUser(accessToken);
//获取返回的Openid
String openid = accessToken.getOpenid();
System.out.println("openid = "+openid);
//获取用户的昵称
String screenname = accessToken.getScreenName();
//根据Openid获取用户信息
TippMemberInfo tippMemberInfo = commonManager.getMemberInfoByOpenId(openid);
//根据openid获取的用户信息行进判断如果不存在就进行入库保存、否则就行跳转到用户登录的请求。
//TippMemberInfo memberInfo = null;
if(null == tippMemberInfo)
{
tippMemberInfo = qqGen.generateMemberInfo(openid,"2",screenname);
}
//用户名
String username = tippMemberInfo.getUsername();
// 登录类型
String logintype = tippMemberInfo.getLogintype();
//密码
String password = tippMemberInfo.getUserpassword();
//处理中文乱码 add by mengxianwei 2011-12-26
screenname = URLEncoder.encode(screenname, "utf-8");
//String location = "/User_Reg_1.shtml?username="+username+"&logintype=2&password=222222";
String location = "/QQ.shtml?username="+username+"&screenname="+screenname+"&logintype="+logintype+"&password=222222";
response.sendRedirect(location);
return null;
}
}
分享到:
相关推荐
QQ登录界面Qt实现是一个在计算机编程领域中,利用Qt库创建QQ登录窗口的过程。Qt是一个跨平台的应用程序开发框架,广泛用于C++编程,适用于Windows、Linux、macOS等多种操作系统。这个项目的目标是构建一个与腾讯QQ...
其次,为了提高用户体验,仿QQ登录列表通常会采用现代化的前端框架,如React、Vue或Angular。这些框架提供组件化开发,使得复用代码和维护变得更加容易。例如,React中的`<Input>`组件可以用来创建输入框,而`...
- QQ登录页面的视觉效果主要通过CSS来实现。可以使用`class`或`id`选择器来对特定元素进行样式定制。 - 使用`display: flex`或`grid`布局可以轻松实现元素的对齐和排列,使其在不同屏幕尺寸下保持良好的响应性。 ...
【安卓QQ登录协议】是腾讯公司为Android平台开发的QQ应用程序设计的一种身份验证机制,它允许用户安全地登录并使用QQ服务。这个协议涉及到多个技术层面,包括但不限于网络安全、身份认证、数据加密以及服务器交互等...
北岸QQ登录增强版2.2详解》 Discuz! 是一款广泛应用于社区论坛的开源软件,其强大的功能和易用性深受众多网站管理员的喜爱。北岸QQ登录增强版2.2是针对Discuz! 平台开发的一款插件,旨在为用户提供更加便捷的QQ...
QQ登录界面是用户接触QQ应用的第一步,其设计和实现涉及到多个UI控件以及相应的背景图片资源。在本文中,我们将深入探讨QQ登录界面中各控件的图片资源及其重要性,同时也会提及如何管理和使用这些资源。 首先,登录...
本项目主要涉及了QQ社交功能的集成,包括QQ登录、注销、分享以及获取和修改用户信息,同时结合了Volley网络框架处理数据请求,Glide库进行图片加载,并实现了华为推送消息的功能。 首先,让我们深入探讨QQ登录和...
通过研究这个高仿QQ登录界面,开发者不仅可以提升自己的前端技能,还能了解到如何将静态的设计转化为互动的网页元素。对于初学者来说,这是一个很好的实践项目,对于有一定经验的开发者来说,也是一个检验和提升自己...
本项目“Swing模仿QQ登录界面”旨在通过Swing库来构建一个与QQ登录界面类似的交互式窗口。 在Swing中,我们首先需要了解几个核心概念: 1. **JFrame**: JFrame是所有Swing应用的基础,它代表了窗口。在模仿QQ登录...
QQ登录界面的测试是软件质量保证的关键环节,因为登录功能是用户接触应用的第一步。因果图法是一种系统化的测试设计技术,它可以帮助测试工程师全面考虑输入条件和它们之间的相互关系,从而有效地设计测试用例。以下...
【DZ QQ登录插件北岸QQ登录 改进版2.4】是一款专为Discuz! 论坛系统设计的QQ快捷登录插件。Discuz! 是一款广泛使用的开源社区论坛软件,它允许用户创建和管理自己的在线社区。这款插件是北岸团队对原版QQ登录功能的...
在Android平台上实现QQ登录是一项常见的任务,特别是在开发社交或游戏应用时。这个"基于Android实现QQ登录.zip"压缩包可能包含了一个示例项目,用于演示如何集成腾讯的QQ SDK到Android应用中,以便用户能够使用他们...
在本文中,我们将深入探讨如何使用Winform技术创建一个与QQ登录界面高度相似的应用程序。Winform是.NET Framework的一部分,它提供了一个强大的图形用户界面(GUI)开发平台,用于构建桌面应用程序。在这个项目中,...
通过这个QQ登录源码,你可以快速集成QQ登录到你的网站,方便用户快速注册和登录,同时也可以利用QQ平台的社交特性,提高用户粘性和网站流量。在实际开发中,还需要注意安全性和用户体验,比如处理用户取消授权的情况...
本项目"精仿QQ登录界面源码"提供了一个详细的学习和实践机会,帮助开发者掌握如何构建一个类似QQ的登录界面。以下是这个源码中涉及的关键知识点: 1. **布局设计**:使用XML布局文件来设计登录界面,包括输入框...
QQ登录界面设计是一个常见的编程练习,它涉及到GUI(图形用户界面)的设计和事件处理,主要使用Java语言。在这个项目中,我们将探讨如何使用Java Swing或JavaFX库来创建一个类似于QQ登录界面的UI,并理解其背后的...
在C#编程环境中,创建一个高质量的QQ登录界面可以是一个挑战性的任务,但它也是学习Windows Forms应用程序设计和网络通信的良好实践。以下是对这个项目的一些详细解释和知识点。 首先,让我们了解C#的基础知识。C#...
整合QQ登录源码 QQ登录包括QQ帐号一键登录、好友互动、同步信息到QQ空间,可为第三方网站打口碑、引流量。它有如下特点: 拥有庞大用户群的QQ账号一键登录 分享内容、动态同步到QQ空间,增加第三方网站信息的传播...
在Android应用开发中,精仿QQ登录界面是一个常见的学习项目,它可以帮助开发者深入理解用户界面设计和Android SDK的使用。这个源码包“Android应用源码之 精仿QQ登录界面源码.zip”提供了这样一个实例,让我们可以...
该源码项目是一个使用C#语言开发的仿QQ登录窗口应用程序,基于.NET Framework 2.0平台。这个项目展示了如何创建一个与QQ登录界面类似的用户界面,而不依赖任何第三方控件,这使得开发者可以直接编译并运行代码,快速...