Ci互联Api(OAuth2.0)

OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。

OAuth2.0:对于用户相关的OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。

Ci互联:基于OAuth2.0,服务于开发者,让开发应用更加简单,不同应用对接更加容易。

官网:https://oauth.acgice.com

 

目录

Ci互联Api(OAuth2.0)目录流程更新时间特殊授权【需申请】API请求1.获取 code2.通过code换取OpenID3.通过OpenID换取用户认证3.通过OpenID换取GroupID“组”概念【开发中】4.通过OpenID换取CiID(全平台统一ID)【开发中】业务场景(可以做什么)1.快捷对接登录注册系统2.快捷实名认证/手机号认证【开发中】3.同开发者A应用 和 B应用 账号数据互通4.多个开发者的不同应用单独打通互联。“组“ 概念【开发中】SDKWEBPHP

流程

登录OAuth2.0总体处理流程如下:

Step1:申请接入,获取appid和apikey; Step2:开发应用,并设置协作者帐号进行测试联调; Step3:登录按钮; Step4:通过用户登录验证和授权,获取OpenID; Step6:调用OpenAPI,来请求访问或修改用户授权的资源。

 

更新时间

2020-9-9

1. 更新文档说明

2020-9-4

1. 重置密码/认证 更新

2020-9-3

1. 正式上线

特殊授权【需申请】

微信扫码添加微信,联系官方人员申请。

wx

参数说明方式
get_user_info获取登录用户的昵称、头像、性别code换取
get_mobile可以获取到用户手机号code换取
get_user你可以通知注册账号和修改密码OpenID换取
get_silence静默跳转,不需要用户授权(如用户已登录)单独申请
get_auth可以获取到获得用户的真实姓名OpenID换取

 

 

API请求

前往官网注册账号

实名认证后,添加应用,应用通过审核后即可正常调用API

 

1.获取 code

请求地址

请求方法

GET

请求参数 请求参数请包含如下内容:

参数是否必须含义
appid必须分配给应用的appid。
redirect_uri必须成功授权后的回调地址,必须是注册appid时填写的主域名下的地址,建议设置为网站首页或网站的用户中心。注意需要将url进行URLEncode。
state必须用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

 

 

 

返回说明

  1. 如果用户成功登录并授权,则会跳转到指定的回调地址,并在redirect_uri地址后带上Authorization Code和原始的state值。 注意:此code会在10分钟内过期仅可使用一次。
  2. 如果用户在登录授权过程中取消登录流程,对于PC网站,登录页面直接关闭;对于WAP网站,同样跳转回指定的回调地址,并在redirect_uri地址后带上error参数和原始的state值以及错误的value说明,其中error值为非零。

例如

请求

之后会 302跳转回 redirect_uri 获取code

失败的话会跳转

 

2.通过code换取OpenID

请求地址

请求方法

POST

请求参数

请求参数请包含如下内容:

参数是否必须含义
appid必须申请QQ登录成功后,分配给网站的appid。
appkey必须申请QQ登录成功后,分配给网站的appkey。
code必须10分钟内有效,仅可使用一次。
state必须用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

返回说明

如果成功返回,即可在返回的JSON中获取到各种信息。

参数说明描述
openid该应用账号的唯一标识
unionid同开发者旗下不同应用的唯一标识
nickname用户昵称
sex用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
headimgurl用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
mobile用户的手机号,如未授权则不展现。
state用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

如果失败

 

3.通过OpenID换取用户认证

当通过code换取OpenID时,OpenID会在30天后无法使用

重新通过code换取OpenID时,OpenID会自动续期30天

注意! 并不是说OpenID会变动消失!而是无法请求使用OpenID的API

 

请求地址

请求方法

POST

请求参数

请求参数请包含如下内容:

参数是否必须含义
appid必须申请QQ登录成功后,分配给网站的appid。
appkey必须申请QQ登录成功后,分配给网站的appkey。
openid必须该应用会员的唯一标识
state必须用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

返回说明

如果成功返回,即可在返回的JSON中获取到数据。

参数说明描述
openid该应用账号的唯一标识
unionid同开发者旗下不同应用的唯一标识
fid该用户的身份证号
fname该用户的真实姓名
state用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

如果失败

 

 

3.通过OpenID换取GroupID“组”概念【开发中】

当通过code换取OpenID时,OpenID会在30天后无法使用

重新通过code换取OpenID时,OpenID会自动续期30天

注意! 并不是说OpenID会变动消失!而是无法请求使用OpenID的API

 

请求地址

请求方法

POST

请求参数

请求参数请包含如下内容:

参数是否必须含义
appid必须申请QQ登录成功后,分配给网站的appid。
appkey必须申请QQ登录成功后,分配给网站的appkey。
openid必须该应用账号的唯一标识
gid必须组ID,请在应用后台查询
state必须用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

返回说明

如果成功返回,即可在返回的JSON中获取到返回数据。

参数说明描述
openid该应用账号的唯一标识
unionid同开发者旗下不同应用的唯一标识
state用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
groupid用户组的唯一groupid

如果失败

 

4.通过OpenID换取CiID(全平台统一ID)【开发中】

当通过code换取OpenID时,OpenID会在30天后无法使用

重新通过code换取OpenID时,OpenID会自动续期30天

注意! 并不是说OpenID会变动消失!而是无法请求使用OpenID的API

 

请求地址

请求方法

POST

请求参数

请求参数请包含如下内容:

参数是否必须含义
appid必须申请QQ登录成功后,分配给网站的appid。
appkey必须申请QQ登录成功后,分配给网站的appkey。
openid必须该应用账号的唯一标识
gid必须组ID,请在应用后台查询
state必须用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。

返回说明

如果成功返回,即可在返回的JSON中获取到返回数据。

参数说明描述
openid该应用账号的唯一标识
unionid同开发者旗下不同应用的唯一标识
state用于第三方应用防止CSRF攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与state参数状态的绑定。
ciidCi互联全平台统一ID

如果失败

 

 

业务场景(可以做什么)

提供几个开发思路。

1.快捷对接登录注册系统

免除自己开发 登录,注册,找回密码,手机号验证的成本,只需要沉浸与开发核心业务身上。

2.快捷实名认证/手机号认证【开发中】

授权后会返回用户真实的认证信息以及手机号,可以直接免费获取。

 

3.同开发者A应用 和 B应用 账号数据互通

同开发者下 所有应用授权 同一个用户的 unionid 是一模一样的。

使用 unionid 判断用户是否注册 或者 2个应用之前请求传递用户的 unionid 。

 

4.多个开发者的不同应用单独打通互联。“组“ 概念【开发中】

A开发者的 A1应用 A2应用

B开发者的 B1应用 B2应用

如果 A B 开发者想要将 A1 和 B2 的用户数据打通,平常来说是基本不可能的事情。

这时候 “组” 的概念就出来了, 我A1 和 B1单独打通, A1 和 B2 单独打通 ( 互不影响且数据不一样 )

 

 

SDK

程序的演示

 

WEB

 

PHP