APP内应用免认证接口

准备工作

免认证接口

准备工作

在对接之前,应用需做以下3点准备工作:

1、APP支持标准的OAuth授权码模式支持

流程简介:

  • 获取code。
  • code换token。
  • token换用户信息。
2、提供应用id和应用秘钥给sso
  • 将sso域名注册到APP应用中,并且提供应用id和应用秘钥。

免认证接口

一、获取code

Sid请求APP获取code的接口

请求⽅式: GET(HTTPS或HTTP

请求地址: https://sso.xxx.edu.cn/oauth/authorize

注:https方式类似。

请求参数:

请求示例:
 https://app.xxx.edu.cn/oauth/authorize?client_id=xxx&redirect_uri=xxx&response_type=code&scope=base_api&state=xxx

参数说明:

参数 是否必须 说明
client_id 应用唯一标识,即应用注册时获得的应用id
redirect_uri 授权后重定向的回调链接地址,注意需使用 urlEncode 对链接进行处理
response_type 返回类型,请填写 code
scope 作用域,与注册时匹配。 base_api 可以访问基础API且支持静默模式不弹出授权提醒;
all 可以使用所有高级API。通过开放平台创建的应用默认授予 base_api 作用域,可申请 all 权限;
在微哨管理平台创建的应用同时授予 base_api 和 all 权限
state 重定向后会带上 state 参数。开发者可以用此参数验证请求有效性,或记录用户请求授权页前的位置。
同时此参数可用于防止跨站请求伪造(CSRF)攻击

返回结果: 因为应用嵌入在APP内部,此时APP应该是登录状态,在一系列校验后,会重定向到redirect_uri并且带着code和state

示例:
 https://redirect_uri?code=xxxxx&state=xxx

参数说明:

参数 说明
code 下发的code
state 请求code时带的参数

二、通过 code 换取网页授权token

请求⽅式: POST(HTTPS或HTTP

请求地址: http://app.xxx.edu.cn/oauth/token

注:https方式类似。

请求参数:

注:请求数据类型为Form表单(application/x-www-form-urlencoded) 注:client_id和client_secret在header中传输

request.addHeader(“Authorization”,  "BASIC "+ base64Encoder.encodeToString(String.format("%s:%s", apiKey, apiSecret).getBytes(Charset.forName("UTF-8"))));
Form表单示例:
grant_type=authorization_code&code=xxx&redirect_uri=xxx

参数说明:

参数 是否必须 说明
grant_type 固定值 authorization_code
client_id 应用唯一标识,即应用注册时获得的 应用id
client_secret 应用的秘钥,即应用注册时获得的应用秘钥
code 授权码,即第一步应用回调地址获得的 code 参数值
redirect_uri 应用回调地址

返回结果:

{
  "access_token": "fDanz0ydkCqVsgSoze7mrCnwJIsN0dL",
  "expires_in": "1209600",
  "scope": "base_api",
  "refresh_token": "HhbiRKzjVnKdvGfmuGjvh3Clm4AIMqV8",
  "token_type": "Bearer"
}

参数说明:

参数 说明
access_token 下发的token
expires_in 有效期
scope 作用域
refresh_token 刷新令牌
token_type 令牌类型

三、获取用户信息

获取用户信息。

请求⽅式: GET(HTTPS或HTTP

请求地址: http://app.xxx.edu.cn/profile

注:https方式类似。 注:token在head中传输

header 'Authorization: Bearer access_token'

请求参数:

示例:
http://sso.xxx.edu.cn/profile

参数说明:

参数 是否必须 说明
access_token 请求头解析 令牌

返回结果:

{
  "name": "张三",
  "student_number": "zhangsan"
}

参数说明:

参数 说明
name 姓名
student_number 账号
©2020 锐捷网络股份有限公司 all right reserved,powered by Gitbook该文章修订时间: 2025-02-18 14:26:08

results matching ""

    No results matching ""