概述
OAuth2.0(开放授权)是一个开放标准,用户授权后,第三方应用无需获取用户的用户名和密码就可以访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表)。
Access Token:用户身份验证和授权的凭证。第三方应用在调用开放平台开放API之前,首先需要获取Access Token。
使用授权前准备
您需要创建一个应用以获取 client_id 和 client_secret,申请方式请联系管理员。
云his平台支持的OAuth授权
目前,云his平台OAuth2.0支持三种获取Access Token的流程和一种刷新获取AccessToken方式,第三方可根据需求选取合适的方式:
云his平台授权的Access Token是有有效期的,这样会影响用户的体验和增加开发者的工作。所以平台提供了一种方式可以保证授权有效期为永久。
实现方式:返回给第三方30天有效期的Access Token + 近十年有效期的Refresh Token。
实现原理:Refresh Token的作用就是在Token有效期截止前,刷新以获取新的Access Token。
获取途径 |
授权流程 |
介绍 |
有效期 |
新获取 |
又称Web Server Flow,适用于所有有Server端配合的应用。 |
有效期30天的Access Token+有效期3650天的Refresh Token。 |
|
新获取 |
用户向客户端提供自己的用户名和密码。客户端使用这些信息,向"服务商提供商"索要授权。 |
有效期30天的Access Token+有效期3650天的Refresh Token。 |
|
刷新 |
Access Token刷新方式,适用于所有有Server端配合的应用 。 |
3650天刷新期限。 |
Authorization Code授权
简介
采用Authorization Code获取Access Token的授权验证流程又被称为Web Server Flow,适用于所有有Server端的应用,如Web/Wap站点、有Server端的手机/桌面客户端应用等。其流程示意图如下:
对于应用而言,其流程由获取Authorization Code和通过Authorization Code获取Access Token这2步组成。
其获取方式是通过重定向用户浏览器(或手机/桌面应用中的浏览器组件)到“http://xxx/jims/oauth/authorize”地址上,并带上以下参数:
- client_id:必须参数,申请应用时获得的client_id。
- response_type:必须参数,此值固定为“code”。
- redirect_uri:必须参数,授权后要回调的URI,即接收Authorization Code的URI。如果用户在授权过程中取消授权,会回调该URI,并在URI末尾附上error=access_denied参数。对于无Web Server的应用,其值可以是“oob”,此时用户同意授权后,授权服务会将Authorization Code直接显示在响应页面的页面中及页面title中。非“oob”值的redirect_uri按照如下规则进行匹配:(1)如果开发者在“授权安全设置”中配置了“授权回调地址”,则redirect_uri必须与“授权回调地址”中的某一个相匹配;(2)如果未配置“授权回调地址”,redirect_uri所在域名必须与开发者注册应用时所提供的网站根域名列表或应用的站点地址(如果根域名列表没填写)的域名相匹配。
- scope:非必须参数,以空格分隔的权限列表,若不传递此参数,代表请求用户的默认权限。关于权限的具体信息请参考