详解新浪微博登录第三方网站
为什么要绑定?
答案:简化用户登录,用第三方账号实现这个网站的登录。通过绑定,还可以获得第三方账号的提供的一些接口信息,可以再本平台直接操作第三方平台,这样,即保存了本网站的用户也有利于第三方网站,实现双赢。当然最主要是的还是实现了不用注册登录
第三方登录过后用户名是多少?
用第三方登录后默认是没有用户名的,只能获得第三方提供的一个access_token来获取第三方平台的信息。所有绑定后,我们应该引导用户手动设置我们网站上的用的名,密码等基本信息,处理办法:
1、引导手动设置用户名,密码
2、为第三方网站登录后的用户设置一个随机的用户名,引导用户随后重新设置用户名。
一、常识:
什么是授权方式:授权方式即采用什么办法来使用户获得权限。
新浪中的授权方式有哪些?
1、OAuth方式
2、XAuth方式,主要用于应用分类属于桌面客户端、手机客户端。(这里不讲解)
参考:http://open.weibo.com/wiki/Authentication#HTTP.E6.99.AE.E9.80.9A.E9.89.B4.E6.9D.83.28Basic_Authentication.29.E6.96.B9.E5.BC.8F
二、OAuth方式详解:
code:授权码,用于获得Access token,获取后会变为无效(Code只允许使用一次,如获取token失败,请重新生成code,再进行授权)
Access token (访问令牌) 用第三方登陆的凭证,通过它登录第三方获取信息,他不是固定不变得,是和用户选择的授权项有关,还有他有过期时间。
Refresh_token(刷新令牌)
通过前两种种流程,获取了Access token以及Refresh token(对于具有"获取Refresh token权限"的应用),但是一般来讲,access token都有一定的失效,在刷新有效时长内必须通过Refresh token 来延迟Access token的时长。请求的流程有:https://auth.360buy.com/oauth/token通过http post请求发送刷新。
access_token有设定的有效期,当应用需求的accesstoken有效期超过设定值时,就可以通过refreshtoken来刷新accesstoken.
注意:新浪微博的Refresh Token 暂不开放。(参考:http://open.weibo.com/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98 第31条)
参考:http://help.jd.com/jos/question-594.html
如何防止第三方授权之后的token被冒用?
OAuth1.0的access token获取过来之后,就可以存到数据库里,然后长期使用,因为它有效期很长,通常有效期是无限的.
但是OAuth2.0为了增强安全性,access token的有效期被大大缩短,通常只有几个小时,也可以申请增加到几十天,但是总是会有过期的时候.
为此,OAuth2.0增加了一个refresh token的概念,这个token并不能用于请求api.它是用来在access token过期后刷新access token的一个标记.
在OAuth1.0中用户的登录状态是一直存在的.
在OAuth2.0中用户的登录状态需要通...
关于人人网,QQ中的access token 过期时间的判断:
用code去换取token的时候,会返回三个参数:现在的accesstoken的有效期是一个月,refreshtoken的有效期是两个 月,expirein是过期时间(生命期,从获得的时刻起的剩余有效时间,以秒为单位);第一次登陆的时候需要和用户的人人uid一起与网站uid关联起 来,还需要保存accesstoken的获取时间,以后调接口发新鲜事的时候先判断一下accesstoken是否过期,算法:现在的时间秒 数>accesstoken的获取时间+expirein(如果为true代表accesstoken已过期),
如果accesstoken已过期,需要用refreshtoken刷新accesstoken,
如果刷新没有取到accesstoken,代表refreshtoken也过期了,需要用户重新登陆一次人人网;
如果刷新取到了新的accesstoken、refreshtoken、expirein,需要用这些新的去替换掉关联表中的数据
建议在用户每次登陆的时候都用refreshtoken去刷新一次accesstoken,这样才会保证只有用户连续两个月没有登录才需要重新登录人人网;
需要重新获取code,然后得到access_token。即要重新调用授权界面。需要用refreshtoken刷新accesstoken。如果刷新取到了新的accesstoken、refreshtoken、expirein,需要用这些新的去替换掉关联表中的数据。建议每次登陆的时候都用refreshtoken去刷新一次accesstoken。
参考:http://www.cnblogs.com/hooray/archive/2012/11/17/2774499.html
http://www.iteye.com/topic/1129210
详解新浪微博登录第三方网站相关推荐
- Android开发全程记录(九)——使用新浪微博登录第三方应用
1.首先到官网下载SDK,下载地址:http://open.weibo.com/wiki/Sdk 2.解压SDK包,解压后,目录下会有pdf文档,同时提供有WeiboSDK和WeiboSDKDemo, ...
- 钉钉一键登录第三方网站
钉钉一键登录第三方网站 序 钉钉开发者后台 H5微应用 应用代码开发 登录页面login.html 登录实现LoginController.java pom.xml增加 一键登录效果展示 序 企业内部 ...
- 不懂第三方网站、App如何接入微信登录怎么办?这里我详解单点登录之第三方微信登录(建议收藏)
2021/9/3 文章目录 一.前置准备 二.微信登录流程分析 第一步:请求code 第二步:通过code获取access_token 第三步:通过access_token调用获取用户信息 三.接口核 ...
- umeng(友盟)实现第三方登录和分享详解之登录详解
一.简单介绍 因为一个平台一个平台进行弄太麻烦,也不够统一,所以领导选择了umeng(我的内心是拒绝的),umeng的文档写的便于查找,但是比较分散,对于比较熟悉的很好用,没接触过umeng的肯定一脸 ...
- iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录无需密码)
1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享: http://www.cnblogs.com/qingche/p/3727559.html 可以 ...
- iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)
链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...
- umeng(友盟)实现第三方登录和分享详解之登录详解,程序员的中年危机
android:name="com.sina.weibo.sdk.share.WbShareTransActivity"> 微信:不需要 支付宝: <activity ...
- 详解如何进行第三方App接入微信登录
微信登录接入 微信登录遵循协议Aouth2.0中的授权码模式 我们来看一下Aouth2.0中的授权码模式是怎么定义的: 授权码模式(authorization code)是功能最完整.流程最严密的授权 ...
- DNS劫持详解、如何使用网站监控检测dns劫持和网络劫持的特征
如何检测是否存在劫持? 使用IIS7网站监控,进入监控页面,输入你需要检测的网站域名,点击"提交检测",我们可以看到"检测次数"."返回码" ...
最新文章
- 25. javacript高级程序设计-新兴的API
- AI+Science 是人类两大科研范式的结合,工程化正当时
- 第二课unit2 控制对文件的访问
- golang的time包:时间字符串和时间戳的相互转换
- C++中的类模板详细讲述
- 一个简单的Java计时器项目,附源码
- .net 获取 存储过程的输出参数
- 常见设计模式 (python代码实现)
- Vivado Design Suite用户指南之约束的使用第二部分(约束方法论)
- CSS Expression用法总结
- 编程语言python入门-2020年10月编程语言:Java、Python 龙争虎斗
- mysql 测试快生产慢_兴奋!阿里三位扫地憎专家总结的Mysql性能优化金字塔法则,操作细节满分...
- 2022高处安装、维护、拆除考试练习题及答案
- 关于Oracle的PARALLEL_MAX_SEVERS参数
- 网上做什么可以赚钱?网上最靠谱的赚钱方法
- CSS学习05:文字段落排版
- 507「LibreOJ NOI Round #1」接竹竿-DP
- javascript案例,专辑前6名
- 用stream流比较List<对象>内的时间戳进行分组 按天
- Pytorch学习笔记7——自定义数据集