时间:2015-05-05 来源:

vio微博(Android)开发日记之SSO授权篇 【综合】

在网上找了很久也没有发现比较好的android微博客户端可以提供学习…有的也是非常老旧了…摩擦摩擦…完全跟不上时代的步伐.一怒之下web外包,vio微博应运而生. duang… 言归正传…新浪微博目前所采用的授权机制,web外包转向OAuth2.0.那么怎么进行OAuth2.0的认证呢? 首先,div页面我们了解一下OAuth2.0: OAuth2.0是一个全新的协议,承接网页前端外包对之前的版本不进行向后兼容网页html切图排版,但OAuth2.0的整体架构与之前的OAuth架构却是相同的. OAuth2.0的认证流程: (1)用户打开客户端以后,网页html切图排版客户端要求用户给予授权 (2)用户同意给予客户端授权 (3)客户端使用上一步获得的授权,承接网站前端向认证服务器申请令牌 (4)认证服务器对客户端进行认证以后,html切图报价确认无误,承接网页制作同意发放令牌 (5)客户端使用令牌web外包,向资源服务器申请获取资源 (6)资源服务器确认令牌无误,web外包同意向客户端开放资源 OAuth2.0客户端授权模式包括: ①授权码模式(authorization code) ②简化模式(implicit) ③密码模式(resource owner password credentials ④客户端模式(client credentials)

申请流程就到这里网页切图制作,好处多多. 新建vio微博工程div+css+js切图,在微博sdk中导入以下.so文件及weibosdkcore.jar文件 本人不喜欢项目依赖,网页重构报价所以之间拷了过来.大家如果能接受承接网站前端,直接将weibosdk设为依赖.

授权码模式: —> 用户访问客户端,承接网站前端客户端指向服务器( 参数:response_type:表示授权类型psd切图html,必选项,psd切图html此处的值固定为”code” client_id:表示客户端的ID,可选项(新浪微博提供默认url) scope:表示申请的权限范围网页切图制作,可选项(可参照sdkdemo) state:表示客户端的当前状态,网页切图制作可以指定任意值div+css+js切图,认证服务器会原封不动地返回这个值.) —> 用户选择是否授权 —> 获取用户后,手机网页外包将用户导向到redirect_uri,返回授权码code —> (此步骤用户不可见) 利用服务器授权码,页面div重构向服务器申请一个access_token —> 认证服务器核对了授权码和重定向URI,无误之后,psd切图html返回参数( 参数:access_token:表示访问令牌web外包,必选项. token_type:表示令牌类型,web外包该值大小写不敏感网页切图制作,必选项,div页面可以是bearer类型或mac类型. expires_in:表示过期时间div+css+js切图,单位为秒.如果省略该参数,手机网页外包必须其他方式设置过期时间. refresh_token:表示更新令牌承接网站前端,用来获取下一次的访问令牌,承接网站前端可选项. scope:表示权限范围psd切图html,如果与客户端申请的范围一致,承接网页制作此项可省略) 我们使用的便是这种方式:其他三种此处不做介绍:(有兴趣参考:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)

下面我们看一下我的vio微博的认证: 首先: 打开新浪微博开放平台(http://open.weibo.com/) 完善个人信息 创建应用… (如果是创建第二个应用web外包,点击微连接,web外包移动应用就OK) android签名需要在现在sdk_demo中获取app_signatures.apk输入包名获取.下载地址:https://github.com/sinaweibosdk/weibo_android_sdk 值得注意的是之高级设置中需要按如下设置(当然若是大神自动可回避):

authInfo = new AuthInfo(this, WeiBoConfig.REDIRECT_URL, authInfo); Button btnLogin = (Button) findViewById(R.id.btn_login); btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { ssoHandler.authorize(new AuthListener()); } }); class AuthListener implements WeiboAuthListener{ private Oauth2AccessToken accessToken; @Override public void onCancel() { Log.d(TAG, "uid = " + accessToken.getUid()); Log.d(TAG, "refreshtoken = " + accessToken.getRefreshToken()); Log.d(TAG, "accessToken无效"); // 以下几种情况网页切图制作, "未获取到有效的accessToken, "发生异常 : " + arg0.getMessage()); } } @Override protected void onActivityResult(int requestCode, Intent data) { super.onActivityResult(requestCode, data); // SSO 授权回调 // 重要:发起 SSO 登陆的 Activity 必须重写 onActivityResult if (ssoHandler != null) { ssoHandler.authorizeCallBack(requestCode, data); } } 这是获取授权最简单的方式…… 本人比较懒网页切图制作,就直接调用了sdk.勿喷. ssoHandler.authorize(new AuthListener()); 这种方式默认调用微博客户端授权,div页面若用户手机上没有微博客户端div+css+js切图,则实用web方式授权.

$(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

点击次数:4546
作者:
web前端行业资讯
Web new NewsList
谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日苹果经典电脑Lisa源代码修复完成将于2018年开源 ,,2017年12月28日腾讯浏览指数发布年终榜单2017年人们都关注哪些AI话题? ,,2017年12月28日除了发现开普勒90,NASA还靠AI做了什么? ,,2017年12月28日柯洁宣布:明年4月,将再次与围棋AI交锋 ,,2017年12月28日百度无人车美国首秀CES将发布Apollo2.0 ,,2017年12月28日这四种技术发展趋势将在2018年改变世界 ,,2017年12月28日2017:谷歌DeepMind团队的年度回顾 ,,2017年12月28日封杀这个公式,AI智商将为零 ,,2017年12月28日微软AI高管:要让所有人、所有机构都用上人工智能 ,,2017年12月28日为什么Linux桌面年一直未到来 ,,2017年12月28日AppleLisa操作系统将开源 ,,2017年12月28日2018年9大技术趋势预测 ,,2017年12月28日谷歌研究院发布NIMA:能评价图像有多美,还能让图像变得更美 ,,2017年12月28日苹果为2019年iPhone开发大容量电池新技术 ,,2017年12月28日谷歌发布Tacotron2:能更简单地训练AI学习演讲 ,,2017年12月21日TensorFlow漏洞爆发背后:关于AI安全我们的傻与天真 ,,2017年12月21日Android端Edge浏览器新版发布:常规性能优化和BUG修复 ,,2017年12月21日三星开发出全球最小的DRAM芯片技术领先优势扩大 ,,2017年12月21日腾讯绝艺AI下一步将学习AlphaGozero自对弈训练 ,,2017年12月21日Facebook社交VR应用Spaces扩大覆盖面:入驻HTCVive ,,2017年12月21日设计图曝光:三星双屏折叠手机原来是这样的 ,,2017年12月21日微信支付和支付宝已成为世界移动支付的"老师" ,,2017年12月21日新专利表明FaceID未来有望装备在iPad、MacBook和iMac等设备 ,,2017年12月21日首批九个建议加入EE4J的项目 ,,2017年12月21日这就是SurfacePhone?微软可折叠手机概念图曝光 ,,2017年12月21日duilib中控件拖拽功能的实现方法(附源码)【编程语言】2014年11月17日保证JavaScript和Asp、Php等后端程序间传值编码统一2014年01月29日浅谈System.Linq.Enumerable.AsEnumerable方法【编程语言】2015年07月31日设计模式(一)之策略模式 【移动开发】2015年03月19日国外主流广告联盟大推荐2014年01月28日applicationvnd.android.package-archive到底是什么 【Web前端】2015年05月25日无废话XML--DOM4J 【编程语言】2015年01月04日java专家【编程语言】2015年04月13日HDU5015233Matrix(构造矩阵)【综合】2015年08月26日Linux学习笔记(四)账号管理之管理用户账号 【编程语言】2015年04月13日号称性能最好的JDBC连接池:HikariCP 【综合】2015年06月11日maven的总结【编程语言】2015年04月01日我与奥赛的不解之缘 【编程语言】2015年01月29日关键词的选择和操作手法2014年04月04日2.QT中使用资源文件,程序打包【移动开发】2014年12月18日初步使用glog 【Web前端】2015年03月13日hdu1711KMP算法模板题 【架构设计】2015年07月23日POJ3252RoundNumbers(数位DP) 【编程语言】2015年01月24日深入Main函数中的参数argc,argv的使用详解2014年01月30日一个奇葩问题,jQuery的chzn-select查询失效【编程语言】2015年05月25日PHP中PDO的错误处理2014年01月29日iOS开发中常用的轮子第四篇抽屉和侧滑效果【综合】2015年05月06日算法导论笔记(2)【Web前端】2015年03月30日POJ1181大整数是否为素数以及求大整数的质因数-数论-(Miller_rabin+Pollard_rho) 【编程语言】2015年08月15日mysql5.6和mysql5.7分配undo回滚段的区别【综合】2015年09月04日安卓系统中的文件读写操作 【编程语言】2015年08月26日HP开源其webOS浏览器Isis ,,2016年06月23日PS打造可怕的图腾纹身2014年01月28日bzoj1962模型王子【猜数问题】【编程语言】2015年04月01日python学习之魔法方法的调用 【编程语言】2015年03月10日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)