2019独角兽企业重金招聘Python工程师标准>>>

背景

OAUTH 开发授权协议,为用户资源的授权提供了一个安全开放而又简易的标准。可以使用第三方的账户登陆另一个方的

应用或服务,而不暴露给另一个应用该账户的信息。现在已经得到广泛的应用,比如我们在互联网上可以看到很多服务可

以通过第三方账号登录,这样既避免了用户注册的麻烦,也可以使用第三方的资源。

开发流程

一. 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,传入不同的参数,进入不同的登录方式,然后输入账户信息后会

根据用户选择返回不同的结果。开发者可以参考这些对应的代码即可完成授权登录的功能开发。

结束语

这里介绍了第三方应用如果使用QQ账户登录,目前国内很多应用和站点都提供了类似的服务,所以这时目前一种比较

流行而且实用的方向,这里并没有对每个细节进行阐述,如有问题可以访问腾讯的QQ互联开放平台。

转载于:https://my.oschina.net/xubohui/blog/92680

如何在Android手机中开发QQ账户登陆功能的应用相关推荐

  1. android中的后退功能,如何在Android应用中实现一个返回键功能

    如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...

  2. Office365 - 如何在Android手机中reset OneDrive

    在维护Office365过程中,遇到user report在他的安卓系统中的OneDrive无法正常打开使用,尝试了基本的troubleshooting步骤也无法解决. 此时,觉得应该对OneDriv ...

  3. android 禁用触摸屏,如何在Android手机中禁用触摸屏?

    编辑 您可以通过实现ListView控件的自定义扩展已设为列表中的XML文件中使用做到这一点.然后在你的CustomListView中,实现onTouchEvent方法,如果你想让列表处理触摸,只调用 ...

  4. android手机中指纹识别应用相关功能的讲解

    现在很多手机厂商都加入了指纹芯片,相对应的就要开发一系列相配套的指纹相关功能,其中基本功能为应用锁,应用冻结,通过指纹关闭闹钟,通过指纹拍照,通过指纹接听电话,指纹作为密码对文件加密,自定义滑动指纹器 ...

  5. 如何在Android手机上进行Google Map的开发。

    1.题记 提起谷歌Map相信大家都不会陌生,那进入我们今天的话题,如何在Android手机上进行Google Map的开发. 2.Map应用程序的开发 2.1 准备工作 2.1.1 申请Android ...

  6. android手机进行android开发,如何在Android手机上进行自动化测试(上)

    版权声明:允许转载,但转载必须保留原链接:请勿用作商业或者非法用途 前言 通过阅读本节教程,你将了解到以下内容: 如何在脚本代码中.运行脚本时指定手机 如何填写--device Android:/// ...

  7. android开发使用c+_如何在Android项目中开始使用C ++代码

    android开发使用c+ by Onur Tuna 通过Onur Tuna 如何在Android项目中开始使用C ++代码 (How to start using C++ code in your ...

  8. 如何在 Android 手机上实现抓包?

    如何在 Android 手机上实现抓包? http://www.zhihu.com/question/20467503 我想知道某个应用究竟在数据提交到哪里,提交了什么. 网上的教程太复杂,不想麻烦. ...

  9. csv短信回复到android,如何在Android手机上恢复已删除的短信?

    原标题:如何在Android手机上恢复已删除的短信? 文本消息在我们的交流中变得越来越重要.如果您丢失或意外删除了Android手机中的短信,该如何恢复呢?许多Android用户认为无法检索已删除的消 ...

最新文章

  1. Nginx之https配置
  2. TP5 MYSQL按照原来的IN顺序查询
  3. WHEN OVERSEAS
  4. R7-2 试试多线程 (10 分)
  5. php环境被80端口占用无法使用什么办
  6. gdb 收到SIGPIPE信号
  7. 范数与L1损失(MAE)、L2损失(MSE)的关系
  8. Mysql高性能总结
  9. dede产生.php,怎么加快织梦dedeCMS内容生成速度
  10. ATP-EMTP电缆LCC模型中相数与电缆数的设置
  11. 恢复“超级特工”加密的文件夹
  12. linux系统中怎么安装谷歌浏览器,linux怎么安装谷歌浏览器?
  13. 排错万能金钥匙之Linux系统应用
  14. 常用SqlHelper类(C#)
  15. C语言网络编程:recv函数详解
  16. icp matlab,ICP算法MATLAB仿真
  17. 三相逆变器双pi控制器参数如何调节_光伏逆变器MPPT基本原理李星硕
  18. 山西省忻州市水泥厂能耗监测系统的设计与应用
  19. 《羊了个羊》还在火!创始人被制成展牌,竟成母校招生“活广告”?
  20. 计算机科学家事迹,【CCF会员故事-14】计算机软件科学家谢涛:星辰大海,求思进取...

热门文章

  1. java抓取页面数据_通过java抓取任何指定网页的数据
  2. 亚马逊下拉框关键词怎么出来
  3. 微信,已经严重地搅和了我们的生活!
  4. 厉害,利用编码特长,程序员靠副业月入1000美元
  5. 传感器变送器输出信号和校准
  6. unity实现子弹散射效果和闪电链效果
  7. R语言-dnorm-pnorm-qnorm-rnorm的区别
  8. 将负债清零的30岁男士理财规划 婚事不应过铺张
  9. ubuntu查看内存 cpu gpu 使用情况
  10. 阅读长难句-原句部分