淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站
第一步:通过用户授权获取授权码Code;
第二步:用上一步获取的Code和应用密钥(AppSecret)通过Https Post方式换取Token。
第三步:获取用户Nick或者其他信息
| 名称 | 是否必需 | 描述 |
| response_type | Y | 此处为web应用,此值固定为code |
| client_id | Y | 即创建应用时的Appkey |
| redirect_uri | Y | 登录后的回调地址,(注意:此地址必须要与注册应用时的回调地址相匹配,匹配规则是:注域名完全匹配 |
| state | N | 该参数由应用定义,用户授权后,授权服务器会原封不动将此参数返回。 注: 应用可通过可选参数state来记录用户当前所处的页面位置信息,方便用户登录授权后,页面回调到用户之前所处的位置。 |
[attachment=335]
用户登陆后,显示用户授权页面:
[attachment=336]
此时,用户可以选择“授权”或者“取消”(即不同意授权)。
如果用户同意授权,则跳转到应用的回调地址(redirect_uri),同时,应用获得授权码code
[attachment=337]
如果用户取消授权或者访问出错
[attachment=338]
二、用授权码Code换取Token应用在获取授权码后,发送Https Post到授权服务器,授权服务器验证授权码的合法性和应用的AppSecret,验证通过后授权服务器返回Access Token给应用。
需要传的参数有:
| 名称 | 是否必需 | 描述 |
| grant_type | Y | 授权类型 authorization_code 或者 refresh_token |
| code | Y | 授权请求中的授权码,即第一步获取到的code |
| redirect_uri | Y | 登录后的回调地址,(注意:此地址必须要与注册应用时的回调地址相匹配,匹配规则是:注域名完全匹配 |
| client_id | Y | 客户标识,即appkey |
| client_secret | Y | 客户密钥,即appsecret |
以下为java代码实现授权:
第一步:
在网站设置登陆入口
第二步,在redirect网站接受登录后返回的code,并获得access_token
1. access_token就相当于sessionKey,后续调用其他接口可以直接使用
淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站的更多相关文章
- IdentityServer4之SSO(基于OAuth2.0、OIDC)单点登录、登出
IdentityServer4之SSO(基于OAuth2.0.OIDC)单点登录.登出 准备 五个Web站点: 1.localhost:5000 : 认证服务器.2 ...
- ASP.NET WebApi 基于OAuth2.0实现Token签名认证
一.课程介绍 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将是我们需要思考的问题.为了保护我们的WebApi数 ...
- [转]10+倍性能提升全过程--优酷账号绑定淘宝账号的TPS从500到5400的优化历程
摘要: # 10+倍性能提升全过程--优酷账号绑定淘宝账号的TPS从500到5400的优化历程 ## 背景说明 > 2016年的双11在淘宝上买买买的时候,天猫和优酷土豆一起做了联合促销,在天猫 ...
- 基于OAuth2.0的token无感知刷新
目前手头的vue项目关于权限一块有一个需求,其实架构师很早就要求我做了,但是由于这个紧急程度不是很高,最近临近项目上线,我才想起,于是赶紧补上这个功能.这个项目是基于OAuth2.0认证,需要在每个请 ...
- oauth2.0+app方式 webgis 授权
.认证方式有三种 Oauth2.0, Token-based http/windows 二.用户登录与应用登录区别 两者区别在于:当用户登录时,服务器端平台是否直接识别登录信息和验证登录信息. 应用登 ...
- OAuth2.0实战之微信授权篇
微信开发三大坑: 微信OAuth2.0授权 微信jssdk签名 微信支付签名 本篇先搞定微信OAuth2.0授权吧! 以简书的登陆页面为例,来了解一下oauth2.0验证授权的一些背景知识: 1) 传 ...
- 基于oauth2.0实现应用的第三方登录
OAuth2 OAuth2所涉及到的对象主要有以下四个: Client 第三方应用,我们的应用就是一个Client Resource Owner 资源所有者,即用户 Authorization Ser ...
- QQ联合登录(基于Oauth2.0协议)
1. 获取授权码Authorization Code https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id= ...
- 基于OAuth2.0的统一身份认证中心设计
1. 引言 公司经历多年发展后,在内部存在多套信息系统,每套信息系统的作用各不相同,每套系统也都拥有自己独立的账号密码权限体系,这时,每个人员都需要记住不同系统的账号密码,人员入职和离职时,人事部门都 ...
随机推荐
- 【读书笔记】iOS-GCD-block
一,block的定义 //申明变量 (void)(^PrintStr)(void); //定义 PrintStr=^{ NSLog(@"PrintStr"); }; //调用 Pr ...
- iOS开发笔记2:单例模式(singleton)
每一个app有且仅有一个UIApplication,类似UIApplication“ [UIApplication sharedApplication]”这种一个类有且仅有唯一实例的设计即单例模式. ...
- android 之 animations 动画
android 提供的了两种机制你可以用来创建简单的动画:tweedned animation(渐变动画) 和 frame-by-frame animation(逐帧动画)(有道翻译的,汗!!!) . ...
- Linux线程学习(二)
线程基础 进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段.代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, ...
- Effective Java 60 Favor the use of standard exceptions
Benefits to reuse preexisting exceptions It makes your API easier to learn and use. Programs using y ...
- SQLServer中登录名的用户名配置
其实这个问题困扰我很久了. 今夏(13.7)实习的时候第一次接触sqlserver 当时是统一安排,按部就班的做就行. 那时候链接数据库用的id是sa. 后来自己做小程序时候举得不管什么都用sa登录好 ...
- CentOS下安装MySQL
首先通过网络链接的方式在线安装上mysql服务器端吧!(备注:我开始登录服务器的时候是用的其他用户而不是超级管理员,所以安装MySQL的时候需要切换到超级管理员才可以实现软件的正确安装.命令则是:su ...
- Mysql的float类型造成的困扰总结
因为换了工作正在学习使用MySQL,今天领导提出了一个问题,如下: X列是累加值,A列是每日新增值,那么X2应该是X1+A2,而且存储过程里也是这样计算的.可是奇怪的是X2的值却总是和正确值(2396 ...
- 关于字符编码:为什么在ASCII字符集中小写字母比大写字母大32
今天看字符编码,在ASCII一节,字母'A'用ASCII编码是十进制的65,自然想到了'a'应该和'A'差个26吧,却发现'a'是十进制的97,差了32.突然很想知道为什么. 查了ASCII码表,发现 ...
- [麦先生]LINUX常用命令总结
在系统的学习了如何搭建和利用LINUX进行开发后,我利用xMind这一个强大的bug级软件制作了LINUX常见操作命令汇总,但是由于博客园并不支持xMind格式文件的上传,我只能将其做成图片进行分解上 ...