Skip to main content

oauthApp应用

oauthApp应用

oauthApp应用可以实现使用AIRIOT平台的账号密码登录第三方应用的功能,例如用airiot平台的账号密码登录客户其他系统

进入【首页】——点击【二次开发】——点击【oauthApp应用】,进入oAuth应用界面

图片.png

OAuth使用步骤

流程1 客户⽅调⽤请求授权码接⼝

获取⽤户登录状态失败跳转到登录界⾯(⽣成cookie)(平台⽅)

获取⽤户授权状态失败跳转到授权按钮界⾯(带cookie)(平台⽅)

流程2 授权码接⼝成功后会⾃动回调回调接⼝

流程3 客户⽅在回调接⼝中调⽤获取token接⼝

流程4 客户⽅⽤token获取⽤户信息

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

下⾯的http后⾯紧跟的那个localhost:9000实际使⽤时都换成实际的平台⽅IP和端⼝(端⼝为后端 接⼝端⼝,⼀般是31000,例如 http://xyz.abc:31000/core/auth/oauth/authorize)

http://localhost:9000/core/auth/oauth/authorize? client_id=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) **授权成功后跳回到请求授权码接⼝

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

返回给回调接⼝的参数

code 类型string 授权临时票据

state 类型string 可选参数,可以⽤来进⾏业务逻辑 (若请求授权码时传⼊该参数,则这⾥也会 带着这个参数)

  1. 步骤三 客户⽅在回调接⼝中调⽤获取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获取平台⽤户信息后就可以⽤⾃⼰的业务逻辑去登⼊⾃⼰的系统了

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

需要传⼊参数

请求头中参数

x-request-project 类型string 项⽬ID Authorization 类型string 之前获取的token值(access_token) http://localhost:9000/core/auth/user

请求成功后响应

id是当前经过验证的平台⽅⽤户id,username是当前经过验证的平台⽅⽤户名称。其他字段可以 不⽤看,主要⽤的是这两个字段