美文网首页
Java QQ授权第三方登陆

Java QQ授权第三方登陆

作者: Felix_Fang | 来源:发表于2019-01-20 01:08 被阅读0次

    QQ互联官网
    注册开发者,创建应用,创建好的应用我们有我们需要的三个参数,APPID、APPKey、回调地址

    APPID、APPKey、回调地址.png
    这里验证不需要通过,随便填做测试就可以,等上线改就可以了。不过只能自己的QQ授权。
    官方已经不再提供Java的SDK了,只有JS和PHP的。我这里是在网上搜以前的JavaSDK。
    这里填写的时候注意空格,有空格有可能获取不到AccessToken。
    qqconnectconfig.properties.png
    //QQ的pom:
    <dependency>
                <groupId>net.gplatform</groupId>
                <artifactId>Sdk4J</artifactId>
                <version>2.0</version>
            </dependency>
    

    //拼接URL

    @RequestMapping("/qqLogin")
        public String QQLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
            String authorizeUrl = (new com.qq.connect.oauth.Oauth().getAuthorizeURL(request));
            System.err.println("url>>>> " + authorizeUrl);
            return "redirect:" + authorizeUrl;
        }
    

    授权后跳转回调地址

    @Override
        public Result qqLogin(HttpServletRequest request, HttpServletResponse response) throws IOException, QQConnectException {
            AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);
            String accessToken = null, openID = null;
            // 用户授权的时候取消了
            if (accessTokenObj.getAccessToken().equals("")) {
                System.out.print("没有获取到响应参数");
                return null;
            }
            accessToken = accessTokenObj.getAccessToken();
            // 用户QQ的个人信息
            OpenID openIDObj = new OpenID(accessToken);
            openID = openIDObj.getUserOpenID(); // onpenId是QQ用户的唯一标示
            UserInfo qzoneUserInfo = new UserInfo(accessToken, openID);//TOKEN
            UserInfoBean userInfoBean = qzoneUserInfo.getUserInfo();
            String nickname = userInfoBean.getNickname();//用户在QQ空间的昵称。
            String avatar = userInfoBean.getAvatar().getAvatarURL100(); //头像集合,大小:30、50、100   /*String gender = userInfoBean.getGender(); //性别。 如果获取不到则默认返回"男"、String msg = userInfoBean.getMsg(); //如果ret<0,会有相应的错误信息提示,返回数据全部用UTF-8编码。、Integer level = userInfoBean.getLevel();、Integer ret = userInfoBean.getRet(); //返回码*/ 
    

    相关文章

      网友评论

          本文标题:Java QQ授权第三方登陆

          本文链接:https://www.haomeiwen.com/subject/dzvtjqtx.html