导航:首页 > 操作系统 > android第三方授权登录

android第三方授权登录

发布时间:2023-12-25 15:12:17

android第三方QQ登陆

Android实现第三方QQ登陆的开放流程为:
一. QQ登录目前采用OAuth2.0标准协议来进行用户身份验证和获取用户授权。整个流程如下所述,这里比如一个应用A
可以使用QQ账户登陆。
1. 用户访问客户端的应用,试图操作用户存放在服务提供方的资源。比如用户用QQ账户登录 应用 A程序,同时可以获
得用户昵称头像等保存在腾讯服务器的用户信息。
2. 输入QQ账号后,应用A后向服务提供方 (腾讯) (Request Token)。 请求一个临时令牌
3. 服务提供方 (腾讯)(应用A)的身份后,授予一个临时令牌。验证客户端
4. 客户端(应用A)获得临时令牌后,将用户引导至服务提供方(腾讯)的授权页面请求用户授权。在这个过程中将临时令牌和客户端的 回调连接发送给服务提供方(腾讯)。
5. 用户在服务提供方(腾讯)的网页上输入用户名和密码,然后授权该客户端(应用A)访问所请求的资源。
6. 授权成功后,服务提供方(腾讯)引导用户返回到客户端(应用A)提供的回调页面。
7. 客户端(应用A)根据临时令牌从服务提供方(腾讯)那里获取访问令牌 (Access Token)。
8. 根据访问令牌 (Access Token)获得对应用户身份的openid,
9. 然后客户端(应用A)根据访问令牌 (Access Token)与openid调用OpenAPI,来请求访问或修改用户授权的资源(比如昵称用户头像等经过用户授权的信息)。
10.拿到访问令牌 (Access Token)之后,客户端(应用A)可以保存起来,下次就不用再向服务提供方(腾讯)请求授权,直接就可以使用该账户授权的资源,相当于保存了用户名和密码,但是真正的用户名和密客户端(应用A)并不知道。
比如一个信息发布的网站,可以使用QQ账号登录,用户通过安全页面输入QQ账号信息后显示登陆成功,同时询问用户
是否允许该网站使用用户的一些信息,比如资料,相册等,经过用户确认后该网站可以拿到用户授权的信息。同时拿到访
问令牌 (Access Token),以后该网站就可以用这个访问获得该用户的这些授权信息,而不需要再次输入账户信息。一般该
网站也要提供删除这个访问令牌的入口。这样就可以很方便的把用户愿意提供的信息拿到这个信息发布网站使用,而用户
不需要再次登记录入。
二.QQ 为Android移动设备开发提供QQ登陆的开发包,对上述的过程进行的封装,对开发者来说可以方便的使用。要真正开发一个使用QQ账户登录的App,就需要在腾讯社区开放平台注册应用, 申请对应的 appid 和appkey ,这个开发App 时候要用到。
1. 可以在腾讯开放API站点下载最新的QQ登录API库文件和Demo。
2.下载后的Demo工程如下,导入了库文件tencent_openapi.jar如下图一所示。
Demo介绍了两种登陆方式,手机浏览器和WebView,传入不同的参数,进入不同的登录方式,然后输入账户信息后会
根据用户选择返回不同的结果。开发者可以参考这些对应的代码即可完成授权登录的功能开发。

❷ 安卓手机app怎么实现qq第三方登录接口

申请APPID

进入QQ互联的官网

在管理中心中创建移动应用。

导入Jar包

将下载得到的Jar包导入工程,并在AndroidManifest.xml文件中进行注册。

<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100546930" />
</intent-filter>
</activity>


其中,<data android:scheme="tencent100546930" />中的数字需要替换成自己申请得到的APPID。

创建登录接口

所有的SDK接口调用,都会传入一个回调,用以接收SDK返回的调用结果。回调的主要接口有两种:

(1)IUiListener:调用SDK已经封装好的接口时,例如:登录、快速支付登录、应用分享、应用邀请等接口。

(2)IRequestListener:使用requestAsync、request等通用方法调用sdk未封装的接口时,例如上传图片、查看相册等。

在这里创建IUiListener接口实现相应的登录授权操作:

private void onClickLogin() {
if (!mTencent.isSessionValid()) {
IUiListener listener = new IUiListener() {
/** 授权失败的回调*/
@Override
public void onError(UiError arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授权失败", 1000).show();
Message msg = new Message();
msg.arg1 = 2;
handler.sendMessage(msg);
}
/** 授权成功的回调*/
@Override
public void onComplete(JSONObject arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授权成功", 1000).show();
Message msg = new Message();
msg.what = 2;
msg.arg1 = 1;
msg.obj = arg0;
handler.sendMessage(msg);
}
/** 取消授权的回调*/
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "取消授权", 1000).show();
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg);
}
};
mTencent.login(this, SCOPE, listener);
} else {
mTencent.logout(this);
}
}


其中,mTencent为QQSDK主要实现类Tencent类的实例。

// Tencent类是SDK的主要实现类,开发者可通过Tencent类访问腾讯开放的OpenAPI。
// 其中APP_ID是分配给第三方应用的appid,类型为String。
mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext());


将handler进行实例化

handler = new Handler(this);


并将类实现Callback接口,即可对上述类进行Handler的处理操作。

@Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.arg1) {
case 1: { // 成功
JSONObject object = (JSONObject) msg.obj;
try {
openid = object.getString("openid").toString();
sBuilder.append("openid为:"+openid+" ");
access_token = object.getString("access_token").toString();
url = url + "?access_token="+access_token+"&oauth_consumer_key="+APP_ID+
"&openid="+openid+"&format=json";
new MyUrlThread(url.toString(), 2,sHandler).start();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
case 2: { // 失败
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
case 3: { // 取消
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
}
return false;
}


如果授权成功,即可得到返回的Openid。

从而,可以根据Openid调用腾讯所提供的官方接口,实现需要的操作。

❸ android第三方登录平台有哪些

android第三方登录平台有qq. 微信. 新浪微博

阅读全文

与android第三方授权登录相关的资料

热点内容
怎么用c语言编译简单的小游戏 浏览:812
服务器如何以域用户登录 浏览:602
安卓os14怎么默认桌面 浏览:549
应用市场下载在哪个文件夹 浏览:895
安卓上的谷歌地图怎么用 浏览:183
安卓命令行打包 浏览:516
编程文字与数字教学视频 浏览:817
如何看手机号码注册哪些app 浏览:413
linux查看总内存 浏览:852
python进程间共享 浏览:438
js如何获取本地服务器地址 浏览:70
gfx什么时候支持安卓十一系统 浏览:941
压缩机90兆帕 浏览:931
程序员调侃语句 浏览:581
不是php函数的是 浏览:1001
压缩文件好处 浏览:786
3d266期神童三胆计算法 浏览:189
通过爱思助手怎么下载app 浏览:323
vi命令将文件创在桌面上 浏览:925
程序员做竞价 浏览:698