2017最新qq第三方登陆教程


一、注册成为开发者

链接:https://connect.qq.com/index.html

二、创建应用

注册成功后在   应用管理 -》网站应用 里创建自己的应用






三、获取app Id 和 app Key






四、下载并导入SDK和配置文件

下载链接:http://wiki.connect.qq.com/sdk下载

五、在配置文件中填写自己的app id 等信息


六、编写登陆和回调代码

/**
* qq登录页面
* @param request
* @param response
*/
@RequestMapping("/qqLogin")
public void qqLogin(HttpServletRequest request, HttpServletResponse response){
response.setContentType("text/html;charset=utf-8");
        try {
            response.sendRedirect(new Oauth().getAuthorizeURL(request));
        } catch (Exception e) {
            e.printStackTrace();
        }
}



/**
* qq回调页面
* @param request
* @param response
* @return
*/
@RequestMapping("/qqLoginRedirect")
public String qqRedirect(HttpServletRequest request, HttpServletResponse response){

try {
AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);

String accessToken = null;
        String openID = null;
            Long tokenExpireIn = 0L;

            if (accessTokenObj.getAccessToken().equals("")) {
            LoggerUtil.text("==========================未获取到用户 accessToken==========================");
            }else{
            //获取accessToken信息
            accessToken = accessTokenObj.getAccessToken();
                tokenExpireIn = accessTokenObj.getExpireIn();


                // 利用获取到的accessToken 去获取当前用的openid
                OpenID openIDObj =  new OpenID(accessToken);
                openID = openIDObj.getUserOpenID();
                
                //利用 accessToken 和 openID 获取用户信息
                UserInfo userInfo = new UserInfo(accessToken, openID);
                 UserInfoBean userInfoBean = userInfo.getUserInfo();
                
                //第三方登录成功
                if(userInfoBean.getRet() == 0){
                Member member = memberService.queryMemberByToken(accessToken);
                if(member==null){
                member = new Member();
                member.setStatus(true);
                member.setToken(accessToken);
                member.setNick_name(userInfoBean.getNickname());
                member.setHead_img(userInfoBean.getAvatar().getAvatarURL100());
                memberService.saveMember(member);
                }
                request.getSession().setAttribute(Common.MEMBER_SESSION, member);
                request.getSession().setMaxInactiveInterval(tokenExpireIn.intValue());
                }else{
                LoggerUtil.text("未能正确获取到信息,原因是: " + userInfoBean.getMsg());
                }
            }

} catch (Exception e) {
LoggerUtil.error(e);
}

return "redirect:../../web/index";
}


七、在页面上放置qq图标

这个在上线前是没有任何要求的,可以是一个button、a 标签。 只要点击后能请求到你后台编写的 qq登陆页面 接口就行了



以上就是全部步骤了, 不懂的可以私聊我

交流QQ群:613262116


  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值