java实现qq一人登录_java实现qq第三方登录 第三方登录功能的实现

client先访问:PC网站:https://graph.qq.com/oauth2.0/authorize?参数有: response_type=code 固定client_id 申请应用时分配的idredirect_uri 回调的url 你自己网站的一个地址通过第一步会返回 code码(注意:此code会在10分钟内过期)通过Authorization Code获取Access Token(通过地址:https://graph.qq.com/oauth2.0/token?)此时参数有:grant_typeclient_idclient_secret: 申请QQ登录成功后,分配给网站的appkey。code: 上一步返回的authorization code。redirect_uri此刻你已经拿到了Access Token , 然后就是获取用户OpenID_OAuth2.0https://graph.qq.com/oauth2.0/me?access_token=获取到的Access Token 根据第4步你会拿到(openid): callback( {"client_id":"YOUR_APPID","openid":"YOUR_OPENID"} ); 最后就是回去你的用户信息了:https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID返回结果:{"ret":0,"msg":"","nickname":"YOUR_NICK_NAME",…}下面直接看代码(控制层):/**** 首页** @author Administrator**/@Controller@RequestMapping("/qqLogin")public class HomePageController {@RequestMapping("/login")public String login(HttpServletRequest request, HttpServletResponse response, HttpSession session)throws IOException {try {AccessToken accessTokenObj = (new Oauth()).getAccessTokenByRequest(request);String accessToken = null, openID = null;if (accessTokenObj.getAccessToken().equals("")) {System.out.print("没有获取到响应参数");return "error";} else {accessToken = accessTokenObj.getAccessToken();session.setAttribute("accessToken",accessToken);// 利用获取到的accessToken 去获取当前用的openidOpenID openIDObj = new OpenID(accessToken);openID = openIDObj.getUserOpenID();session.setAttribute("openID", openID);return "success";}} catch (QQConnectException e) {// TODO Auto-generated catch blocke.printStackTrace();return "error";}}@RequestMapping("/homePage")public String homePage(Model model) {return "index";}@RequestMapping("/inQQ")public void inQQ(Model model, HttpServletResponse response,HttpServletRequest request) {try {response.sendRedirect(new Oauth().getAuthorizeURL(request));} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (QQConnectException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}视图层: --%>Hello World!ss

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值