淘宝账号基于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 计算缓存大小
- (void)getSize2 { // 图片缓存 NSUInteger size = [SDImageCache sharedImageCache].getSize; // NSLog(@&qu ...
- android 使用HttpURLConnection方式提交get/post请求
源码链接 package com.zhangbz.submitdata.Utils; import java.io.ByteArrayOutputStream; import java.io.IOEx ...
- UVa 112 - Tree Summing(树的各路径求和,递归)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...
- Navicat 连接 Oracle数据库 提示 cannot load OCI DLL 的解决
一.32位系统下 cannot load OCI DLL,126 解决方法:工具->选项->OCI 选择oracle安装目录下bin里面的oci.dll 二 .在64位系统下安装了Orac ...
- 关于Block Formatting Context--BFC和IE的hasLayout
转文请标明 --- 出处:穆乙 http://www.cnblogs.com/pigtail/ 一.BFC是什么? BFC(Block Formatting Context)直译为"块级格式 ...
- Effective Java 01 Consider static factory methods instead of constructors
Advantage Unlike constructors, they have names. (BigInteger.probablePrime vs BigInteger(int, int, Ra ...
- oracle 得到新插入数据的ID并使用
DECLARE newID varchar2(50);begininsert into table1 (aa,bb) values('7777','8888') RETURNING ID INTO ...
- js中location.href的用法
Javascript中的location.href有很多种用法,主要如下: self.location.href="/url" 当前页面打开URL页面 ocation.href=& ...
- jQuery实现联动下拉列表查询框
<!DOCTaYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org ...
- 设计模式C#实现(一)——模板方法模式
模板方法模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重写定义算法中的某些步骤. 假如我们有两种咖啡因饮料:茶和咖啡.茶的制作过程为: ...