1. 模块简介

进入【首页】——点击【二次开发】——点击【oauthApp应用】,进入oAuth应用界面
oauthApp应用可以实现使用AIRIOT平台的账号密码登录第三方应用的功能
图片.png

2. OAuth使用步骤

流程1 客户⽅调⽤请求授权码接⼝
获取⽤户登录状态失败跳转到登录界⾯(⽣成cookie)(平台⽅)
获取⽤户授权状态失败跳转到授权按钮界⾯(带cookie)(平台⽅)
流程2 授权码接⼝成功后会⾃动回调回调接⼝
流程3 客户⽅在回调接⼝中调⽤获取token接⼝
流程4 客户⽅⽤token获取⽤户信息

2.1 步骤一 客户方调用请求授权码接口

下⾯的http后⾯紧跟的那个localhost:9000实际使⽤时都换成实际的平台⽅IP和端⼝(端⼝为后端
接⼝端⼝,⼀般是31000,例如http://xyz.abc:31000/core/auth/oauth/authorize)
http://localhost:9000/core/auth/oauth/authorize?
clientid=000000&state=%E6%B2%B9%E7%94%B0&redirect_uri=http://localhost:9000/core/au
th/oauth/redirect&response_type=code
请求头中参数
x-request-project 类型string 项⽬ID
需要传⼊参数
client_id 类型string 客户端id (存储在平台⽅,需要去平台⽅看)
redirect_uri 类型string 客户⽅提供的回调接⼝ (如http://xxx.azx:1234/abc/rfzx)
response_type 类型string 响应类型(值固定为code)
state 类型string 可 数,可以⽤来进⾏业务逻辑
platform_uri 类型string 平台⽅地址(这⾥端⼝是前端⻚⾯端⼝,单项⽬版值为http://IP地址:端 ⼝/admin,多项⽬版值为http://IP地址:端⼝/admin/_p
项⽬ID,如http://xyz.abc:3030/admin,http://xyz.abc:3030/admin/_p_61123506db387e8ec4b01741)
图⾥是平台⽅OAuth应⽤界⾯位置,⼿动添加⼀个就能看到客户端id和密钥了
图片.png
获得的OAuth应⽤格式为
图片.png
获取用户登录状态失败跳转到登录界面(生成cookie)(平台方)
此处连接为⻚⾯中前端会调⽤的后端接⼝,正式版需前端给⼀个⻚⾯url(平台⽅提供,⾮客户⽅)
http://localhost:9000/core/auth/login/oauth
请求头中参数
x-request-project 类型string 项⽬ID
需要传⼊参数
client_id 类型string 客户端id (存储在平台⽅,需要去平台⽅看)
redirect_uri 类型string 客户⽅提供的回调接⼝
response_type 类型string 响应类型(值固定为code)
state 类型string可选参数,可以⽤来进⾏业务逻辑
return_to 类型string结束后返回到请求授权码接⼝
platform_uri 类型string 响应类型(单项⽬版值为http://IP地址:端⼝/admin,多项⽬版为
http://IP地址:端⼝/admin/_p_项⽬ID)
登录成功后跳转到授权按钮⻚⾯
http://localhost:9000/core/auth/login/oauth/authorize
获取⽤户授权状态失败跳转到授权按钮界⾯(带cookie)(平台⽅)
此处连接为⻚⾯中前端会调⽤的后端接⼝,正式版需前端给⼀个⻚⾯url(平台⽅提供,⾮客户
⽅)
http://localhost:9000/core/auth/login/oauth/authorize
请求头中参数
x-request-project 类型string 项⽬ID
需要传⼊参数
client_id 类型string 客户端id (存储在平台⽅,需要去平台⽅看)
redirect_uri 类型string 客户⽅提供的回调接⼝
response_type 类型string 响应类型(值固定为code)
state 类型string 可选参数,可以⽤来进⾏业务逻辑
return_to 类型string 结束后返回到授权请求接⼝
platform_uri 类型string 响应类型(单项⽬版值为http://IP地址:端⼝/admin,多项⽬版为 http://IP地址:端⼝/admin/_p_项⽬ID)
授权成功后跳回到请求授权码接⼝

2.2 步骤二 授权码接⼝成功后会⾃动回调回调接⼝

返回给回调接⼝的参数
code 类型string 授权临时票据
state 类型string 可选参数,可以⽤来进⾏业务逻辑 (若请求授权码时传⼊该参数,则这⾥也会
带着这个参数)

2.3 步骤三 客户⽅在回调接⼝中调⽤获取token接⼝

请求头中参数
x-request-project 类型string 项⽬ID
需要传⼊参数
client_id 类型string 客户端id (存储在平台⽅,需要去平台⽅看)
client_secret 类型string 客户端密钥 (存储在平台⽅,需要去平台⽅看)
grant_type 类型string 认证类型(固定值为authorization_code)
code 类型string 授权临时票据
redirect_uri 类型string 客户⽅提供的回调接⼝
state 类型string 可选参数,可以⽤来进⾏业务逻辑
http://localhost:9000/core/auth/oauth/authorizeToken
请求成功后响应
图片.png
获取到token后客户⽅⽤token获取平台⽤户信息后就可以⽤⾃⼰的业务逻辑去登⼊⾃⼰的系统了

2.4 步骤四 客户⽅⽤token获取⽤户信息

需要传⼊参数
请求头中参数
x-request-project 类型string 项⽬ID
Authorization 类型string 之前获取的token值(access_token)
http://localhost:9000/core/auth/user
请求成功后响应
id是当前经过验证的平台⽅⽤户id,username是当前经过验证的平台⽅⽤户名称。其他字段可以
不⽤看,主要⽤的是这两个字段