当前位置: 首页 > 科技观察

第三方登入

时间:2023-03-23 10:26:40 科技观察

源码介绍:由于涉及到客户个人信息的安全,需要根据本博客(http://blog.csdn.net/csdnfml/article/details/49446479)对源码进行简单修改作用:源代码片段:/**----------------------QQ第三方登录-------------------*/publicvoidloginQQ(){/**判断是否登录*/if(!mTencent.isSessionValid()){mTencent.login(this,"all",loginListener);}/**注销后登录*/else{mTencent.logout(this);mTencent.login(this,"all",loginListener);}}IUiListenerloginListener=newBaseUiListener(){@OverrideprotectedvoiddoComplete(JSONObjectvalues){initOpenidAndToken(values);updateUserInfo();}};/**QQ登录步骤2:存储token和openid*/publicstaticvoidinitOpenidAndToken(JSONObjectjsonObject){try{Stringtoken=jsonObject.getString(Constants.PARAM_ACCESS_TOKEN);Stringexpires=jsonObject.getString(Constants.PARAM_EXPIRES_IN);StringopenId=jsonObject.getString(常量.PARAM_OPEN_ID);if(!TextUtils.isEmpty(token)&&!TextUtils.isEmpty(expires)&&!TextUtils.isEmpty(openId)){mTencent.setAccessToken(token,expires);mTencent.setOpenId(openId);}}catch(Exceptione){}}/**QQ登录第三步:获取用户信息*/privatevoidupdateUserInfo(){if(mTencent!=null&&mTencent.isSessionValid()){IUiListenerlistener=newIUiListener(){@OverridepublicvoidonError(UiError){Messagemsg=newMessage();msg.obj="更改手机时间获取网络时间";msg.what=1;mHandler.sendMessage(msg);}@OverridepublicvoidonComplete(finalObjectresponse){Messagemsg=newMessage();msg.obj=response;msg.what=0;mHandler.sendMessage(msg);}@OverridepublicvoidonCancel(){Messagemsg=newMessage();msg.obj="获取用户信息失败";msg.what=2;mHandler.sendMessage(msg);}};mInfo=newUserInfo(this,mTencent.getQQToken());mInfo.getUserInfo(listener);}else{}}HandlermHandler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){if(msg.what==0){JSONObjectresponse=(JSONObject)msg.obj;if(response.has("nickname")){try{log("获取用户信息成功,返回结果:"+response.toString());mThirdLoginResult.setText("登录成功\n"+"昵称:"+response.getString("nick姓名")+"\n头像地址:"+response.get("figureurl_qq_1"));}catch(JSONExceptione){e.printStackTrace();}}}elseif(msg.what==1){mThirdLoginResult.setText(msg+"");}elseif(msg.what==2){mThirdLoginResult.setText(msg+"");}}};/**QQ登录***步骤:获取token和openid*/privateclassBaseUiListenerimplementsIUiListener{@OverridepublicvoidonComplete(Objectresponse){if(null==response){mToast("登录失败");return;}JSONObjectjsonResponse=(JSONObject)response;if(null!=jsonResponse&&jsonResponse.length()==0){mToast("登录失败");return;}log("QQ登录成功返回结果-"+response.toString());doComplete((JSONObject)response);}protectedvoiddoComplete(JSONObjectresponse){}@OverridepublicvoidonError(UiErrore){Util.toastMessage(MainActivity.this,"onError:"+e.errorDetail);Util.dismissDialog();}@OverridepublicvoidonCancel(){Util.toastMessage(MainActivity.this,"onCancel:");Util.dismissDialog();if(isServerSideLogin){isServerSideLogin=false;}}}/**----------------------QQ第三方登录端--------------------*/下载地址:http://down.51cto.com/data/2115240