Android终极实现第三方登录

其实前面有一篇文章用友盟sdk4.3的版本写过一次实现第三方登录的文章,我只想说没有经历过有很多流程没有注意到,今天用友盟SDK5.0及以上的版本来实现第三方登录功能。
1.申请友盟appkey
我们如果要使用友盟SDK的一些功能,首先需要去友盟官网去申请appkey才可以使用SDK里面提供的功能,友盟官网地址。申请成功以后如下图所示:
这里写图片描述
2.集成友盟SDK到项目
下载SDK
这里以微信登录和QQ登录为例,下载完成以后解压可以看到下图所示的文件,把红色圈里面的文件拷贝到自己的项目中去
这里写图片描述
详细的集成文档请参考http://dev.umeng.com/social/android/android-update?spm=0.0.0.0.Ckysht
3.第三方登录
前期准备在微信开放平台提交应用并通过审核并且开发者账号通过微信认证,不然是没有权限用微信登录的,这是我的应用截图:
这里写图片描述
QQ登录需要去腾讯开发平台,因为我的应用还没有通过腾讯的审核所以添加的是测试账号:
这里写图片描述
我只讲思路,因为代码实现都很久单,第三方登录我们需要分两种情况分别来处理,一、该用户已经有我们app的账户;二、该用户没有我们app的账户。如果是老用户在第一次进行第三方登陆的时候会让用户选择与app的账户进行绑定操作,这样第三方登录的账号和app本身的账号进行了关联。然后分两种应用场景来介绍,一、用户第一次使用第三方登录,我们在获取授权成功信息以后主要拿两个字段的信息一个是open_id另一个是accessToken,然后通过发一个http请求给后台,后台会告诉你这个用户是没有绑定账号或者没有使用第三方账号在我们的应用中注册过,这时候会调到一个界面让用户选择是老用户还是新用户,如果是老用户的话就会把第三方的账号和本应用的账号绑定起来,新用户的话就会生成一个账号并允许他登录进入我们的应用。但是这时候我们就会想不可能每次都需要用户重新授权一次吧,这样用户体验多不好呀,这是当然的了,微信授权成功以后会返回一个accessToken和一个RefreshToken,accessToken的有限期是两小时,refreshToken的有限期是30天,下面是微信官方给的返回数据是示例:
这里写图片描述
在accessToken过期并且refreshToken没有过期我们调用微信提供的接口来刷新这两个数据就可以了,下面是微信官方提供的接口:
这里写图片描述
这样的话就能避免每次都需要用户重新授权了,但是如果refreshToken过期,这就没有办法了只能用户重新授权了。
QQ的accessToken的有效期比较久有长达90天
这里写图片描述
网站接入的文档说也可以用refreshToken来刷新accessToken但是移动接入给出的返回数据示例中并没有
这里写图片描述
难道歧视我们移动端不成,哈哈,没有找到也就算了,90天的有效期已经很久了,让用户再次授权也没有太大的关系。
这样整个第三方功能就完成了,如果要接入微博登录等等,原理都是一样的!

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值