Android Authenticator使用(转)
出处:http://blog.udinic.com/2013/04/24/write-your-own-android-authenticator/
这篇文章个人觉得讲的非常好,比官方文档还要清晰,将各个概念讲的非常清楚,对于新手非常有用,所以在这里记录一下。
摘要:
为什么要使用Authenticator,而不是自己直接写?
答:标准化方法、简化开发流程,有管理多种token、与其他app共享token等功能。支持sync adapter等google框架。
概念解释
几个主要的部分:token;服务器;AccountManager,管理各个账户,其他部分会向AccountManager请求token,而AccountManager调用特定模块来回应请求;AccountAuthenticator,用于处理特定账户类型(比如你自己创建的账户类型)的模块,AccountManager受到请求后对AccountAuthenticator发起对话,而AccountAuthenticator执行相应的操作,可以通过launch activity从用户处获取token,或者在相应位置获取token(所以AccountManager名字很形象了,是管理员,但是不干事的);AccountAuthenticatorActivity,是用来和用户交互、和服务器交互的activity。
当app需要authentication的时候,它只和一个方法,即AccountManager.getAuthToken()会话;而AccountManager通过如下逻辑获取token:

(说实话,我没看懂图。)
首次登陆流程:
- app向AccountManager请求token
- AccountManager向相关的AccountAuthenticator请求token
- 由于是首次登陆,没有缓存的token,因此AccountAuthenticator launch一个Activity,要求用户登陆
- 用户登陆,AccountAuthenticator从服务器获取一个token
- AccountManager将token缓存,以便后期使用
- app获取token,万事大吉
创建Authenticator
继承自AbstractAccountAuthenticator。需要实现的主要方法:
addAccount
添加账号。需要能够launch相应的activity。
getAuthToken
获取token。
创建activity
详略。
创建服务
从而使其他进程能够获取账号信息。详略。
Android Authenticator使用(转)的更多相关文章
- 【Android】一种提高Android应用进程存活率新方法
[Android]一种提高Android应用进程存活率新方法 SkySeraph Jun. 19st 2016 Email:skyseraph00@163.com 更多精彩请直接访问SkySeraph ...
- (翻译) Android Accounts Api使用指南
本文翻译自Udinic的文章Write your own Android Authenticator,可能需要FQ才能阅读.这是译者目前能找到的介绍如何使用Android的Accounts Api最好 ...
- 一种提高Android应用进程存活率新方法
一.基础知识 1.Android 进程优先级 1.1 进程优先级等级一般分法:- Activte process- Visible Process- Service process- Backgrou ...
- Android Weekly Notes Issue #224
Android Weekly Issue #224 September 25th, 2016 Android Weekly Issue #224 本期内容包括: Google Play的pre-lau ...
- Android okHttp网络请求之缓存控制Cache-Control
前言: 前面的学习基本上已经可以完成开发需求了,但是在项目中有时会遇到对请求做个缓存,当没网络的时候优先加载本地缓存,基于这个需求我们来学习一直okHttp的Cache-Control. okHttp ...
- Google Authenticator
Google Authenticator 现在越来越多的网站采用两步验证,实现方式可能有所区别,一般来说是 1+? (1 即 普通的用户名和密码, ?可能是实物如U盾.手机短信验证码或其他).?的重点 ...
- Android使用Java Mail API发送邮件
最近在考虑为已经有的一个应用程序增加一个用户反馈的功能,用户可以通过反馈功能将用户的意见和建议.程序出现的问题以一种更符合用户习惯的方式反馈回来.网上也有一些实现好的反馈程序的服务,包括bug的提交. ...
- Android 学习笔记之Volley开源框架解析(五)
学习内容: 1.PoolingByteArrayOutputStream 2.ByteArrayPool 3.HttpStack 4.HurlStack 5.HttpHeaderParser 前面 ...
- 谷歌验证 (Google Authenticator) 的实现原理是什么?
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:徐小花链接:http://www.zhihu.com/question/20462696/answer/18731073来源: ...
随机推荐
- 程序使用suid应注意的策略
安全要求程序应使用最小权限执行,然而有的程序由于特殊性,往往在执行某段代码的时候需要提高权限. 由于suid的容易使用特性,很多编程人员往往会直接使用它来实现提高权限的功能,而不是去做代码权限分离.这 ...
- springboot自定义错误页面
springboot自定义错误页面 1.加入配置: @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { re ...
- 【C#小知识】C#中一些易混淆概念总结(四)---------解析Console.WriteLine() 分类: C# 2014-02-05 17:18 1060人阅读 评论(0) 收藏
目录: [C#小知识]C#中一些易混淆概念总结 [C#小知识]C#中一些易混淆概念总结(二) [C#小知识]C#中一些易混淆概念总结(三) ------------------------------ ...
- 【数组】Remove Duplicates from Sorted Array II
题目: Follow up for "Remove Duplicates":What if duplicates are allowed at most twice? For ex ...
- html的css选择器
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- CentOS6.5下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
第一步: Ambari安装之Ambari安装前准备(CentOS6.5)(一) 第二步: Ambari安装之部署本地库(镜像服务器)(二) 第三步: Ambari安装之安装并配置Ambari-serv ...
- Windows里如何正确安装Zookeeper以服务运行(博主推荐)(图文详解)
不多说,直接上干货! 为什么要在Win下来安装Zookeeper呢? 其实玩过大数据的人很清楚,在Linux下我更不说了.在win下,如Disconf .Dubbo等应用. 所以,它的应用是非常广的. ...
- django项目的生产环境部署,利用nginx+uwsgi
1.坏境准备 centos6.5 django项目 python坏境(python3.6,) 所需的各种模块(django,uwsgi,sqlite3)具体看坏境 我的测试django项目的数据库用的 ...
- CRF两个例子的理解
概率计算例子: 预测例子:
- springboot-25-springboot 集成 ActiveMq
消息的发布有2种形式, 队列式(点对点) 和主题式(pub/sub) 模式, 队列式发布后, 接收者从队列中获取消息后, 消息就会消失, 但任意消费者都可以从队列中接受消息, 消息只能被接受一次 主题 ...