以QQ为平台的Oauth2.0介绍

本文介绍OAuth 2.0授权登录的基本概念及其在应用中的具体实现过程,特别是腾讯平台提供的OAuth 2.0服务如何简化第三方应用集成流程。

其实吧,Oauth可能大家也接触过,只是不知道有这个名字而已,说的通俗一点就是授权登陆,如果我有一个应用,想要吸引用户,但是注册是个麻烦的事情,很多用户可能欲望不大,但是像QQ这样拥有众多用户的服务商,就提供了一个授权登陆,让用户直接用QQ就可以登陆,其实说的直白点,我写的应用,啥事没干,就感觉让客户登陆了一下,而且我其实也拿不到用户的账号,只是获取了客户的信息,还有一个授权的token。对于我的应用来说token就相当于客户的账号信息(这里不是真实地,只是说腾讯给你的一个,腾讯哪里承认而且能够获取用户的信息的一窜信息)。

腾讯的平台已经封装的足够简单了,可能不知其所以然。

Oauth2.0平台一般流程如下:

应用----------------->弹出登陆页面----------------->用户点击----------------->程序向服务商请求未授权的令牌----------------->应用得到未授权的令牌并且跳转到登陆界面

----------------->用户登陆并把未授权的令牌给服务商----------------->服务商认证登陆,并把授权的令牌丢给应用,这个授权令牌应用可以保存,作为下一场登陆地依据。

这是一般的,当然QQ也是这么做的,但是有几部换了个样子:比如程序向服务商请求未授权的令牌就是我们申请的appid和appkey,在ios中应用之间的跳转很简单,如果A应用跳转的B应用,只要在B应用的

URL Schemes中写上,特定的字符,然后A应用openurl就可以了,同理B应用跳回A应用一样道理,但是,注意,调到A应用,会调用代理:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

个人认为,跳转到qq的登陆页面,主要起作用的还是你申请的appkey,这个key在服务器注册了,一旦接收到这些key就定向到登陆界面,

 _tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"101025299" andDelegate:self];
 [_tencentOAuth authorize:_permissions inSafari:NO];

这两句就很明显了首先传入的appid,作为一个校验和跳回app的url存在。

跳转回来就更简单了,你按照他的规则tencent+appid,注意哦,要是写错了,可是完全没办法回来的。


至于工程怎么实现,腾讯的demo已经讲的非常仔细,小白都能看懂,所以不做赘述,给上url:http://wiki.open.qq.com/wiki/website/IOS_SDK使用说明


建议大家尝试一下,比较简单,但是确实实用!






根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值