文档版本切换/单点登录(Single Sign On)
Api接口v1版本
Api接口v1版本是基础版本。也是我们的主要版本
切换到v1版本
Api接口v2版本
Api接口v2版本是Api接口v1相关接口的升级,相对于v1版本,功能更丰富
切换到Api接口v2版本
单点登录接入指南(Single Sign On)
单点登录,简称为 SSO,是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
切换到单点登录指南
考试/测评、背调、视频面试接入指南 (platform)
CAS单点登录
CAS单点登录使用 CAS Protocol, 兼容 CAS protocol v2 和 CAS protocol v3
a、流程图
b、流程说明
MOKA提供
- moka会提供一个登录url。
1.1 cas单点登录url。
1.2 例:https://app.mokahr.com/login_by/cas/orgId
客户提供
- 客户首先需要搭建自己的cas服务器
- 客户需要提供自己的登录页面url。例:https://www.third.com/login
- 客户需要提供ticket校验url。例:https://www.third.com/ticket
跳转流程
- 客户在自己的系统中配置moka提供的登录url
- 点击moka登录url时。由客户提供参数ticket、returnUrl、role
2.1 不携带ticket参数跳转moka登录url时,moka会重定向到客户提供的登录页面url.客户登录之后需要重新重定向到moka提供的登录url并且必须携带ticket参数。
2.2 携带着ticket参数跳转moka登录url时,moka会调用客户提供的ticket校验url获取用户信息 - 获取到用户信息之后,通过该用户信息判断
3.1 如果该用户存在于moka系统中则进行登录。
3.2 如果不存在则在moka系统内创建用户,创建成功后进行登录。 - 根绝role创建用户,如果不传该参数,默认为 recommender
4.1 role=recommender,创建内推用户。
4.2 role=interviewer,创建面试官。
c、MOKA登录url说明
跳转链接
通过访问此接口,跳转到到MOKA
HTTP 接口
GET https://app.mokahr.com/login_by/cas/{orgId}
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个公司客户对应的唯一id,联系实施或csm获取。 |
请求Query
字段 | 必填 | 描述 |
---|---|---|
ticket | 否 | moka通过该参数来判断客户是否已经登录成功。 不传ticket参数时,moka会重定向到客户提供的登录页面url。 传ticket参数时,moka会调用客户提供的ticket校验url来获取用户信息 |
returnUrl | 否 | 登录成功后跳转的地址。如果设置,登录成功后会跳转到地址。如果不设置则默认跳转到对应角色的首页 |
role | 否 | 通过该链接创建的用户的角色。可选的值为 recommender 或 interviewer ,如果不设置则默认为 recommender |
d、客户登录url说明
跳转链接
不传ticket参数时,moka会重定向到该url,通过访问此接口,跳转到到客户的登录页面
HTTP 接口
GET https://www.third.com/login
(客户提供的登录地址)
请求Query
字段 | 必填 | 描述 |
---|---|---|
service | 否 | 回调地址URL。 |
e、请求客户ticket校验url
moka会请求该url来获取用户信息
HTTP 接口
GET https://www.third.com/ticket
请求示例
$ curl https://www.third.com/ticket?ticket=${ticket}&service=${service} \
-X GET \
返回样例
<cas:serviceResponse xmlns:cas="https://www.third.com/login">
<cas:authenticationSuccess>
<cas:user>test@mokahr.com</cas:user>
<cas:attributes>
<cas:name>test</cas:name>
<cas:email>test@mokahr.com</cas:email>
<cas:phone>15045678910</cas:phone>
</cas:attributes>
</cas:authenticationSuccess>
</cas:serviceResponse>
请求Query
字段 | 是否必填 | 描述 |
---|---|---|
ticket | 是 | 客户登录成功后跳转moka登录url时携带的参数。 |
service | 是 | 回调地址URL。 |
返回body(xml)
字段 | 是否必填 | 描述 |
---|---|---|
user | 是 | 用户信息的唯一标识。推荐使用邮箱 |
name | 是 | 用户的姓名。用户名为空,默认使用邮箱前缀作为用户名 |
是 | 用户的邮箱 | |
phone | 否 | 用户的电话 |
OAUTH2单点登录
开放授权的一个标准
a、流程图
b、流程说明
MOKA提供
- moka会提供一个登录url。
1.1 例:https://app.mokahr.com/login_by/oauth2/orgId - moka会提供一个回调地址
2.1 例:https://app.mokahr.com/login_by/oauth2/orgId/landing
客户提供
- 客户需要提供自己的授权url。
1.1 例:https://www.third.com/oauth/authorize - 客户需要提供自己的获取token url。
2.1 例:https://www.third.com/oauth/token - 客户需要提供自己的获取用户信息 url。
3.1 例:https://www.third.com/user
跳转流程
- 客户在自己的系统中配置moka提供的登录url
- 点击moka登录url时。moka会重定向到客户的授权页面
- 客户在授权页面填写账号密码进行登录,登录成功后带着code跳转到moka的回调地址
- moka通过code调用客户的token接口获取token
- moka通过获取到的token调用客户的获取用户信息接口获取客户的用户信息
- 获取到客户的用户信息后进行登录
c、MOKA登录url说明
url说明
通过访问此接口,跳转到到MOKA
HTTP 接口
GET https://app.mokahr.com/login_by/oauth2/{orgId}
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个公司客户对应的唯一id,联系实施或csm获取。 |
请求Query
字段 | 必填 | 描述 |
---|---|---|
ifGoRecommendWeb | 否 | moka通过该参数来判断客户是否跳转到内推页面。 1、不传该参数时默认按照角色跳转。 2、传固定值 '1' 时跳转内推官网。 3、优先级高于returnUrl |
returnUrl | 否 | 登录成功后跳转的地址。 1、不传该参数时则默认跳转到对应角色的首页。 2、传该参数时登录成功后会跳转到该地址。 3、优先级低于ifGoRecommendWeb |
请求结果
moka接收到请求后,会调用客户的授权url,跳转到客户的授权登录页面
d、MOKA回调地址url说明
url说明
客户授权之后,需要带着code重定向到该地址。
HTTP 接口
GET https://app.mokahr.com/login_by/oauth2/{orgId}/landing
请求Path参数
字段 | 必填 | 类型 | 描述 |
---|---|---|---|
orgId | 是 | string | 每个公司客户对应的唯一id,联系实施或csm获取。 |
请求Query
字段 | 必填 | 描述 |
---|---|---|
code | 是 | 客户授权码code |
state | 是 | moka重定向到客户授权页面时携带的参数,授权成功后需要原封不动的传回来 |
ifGoRecommendWeb | 否 | moka通过该参数来判断客户是否跳转到内推页面。 1、不传该参数时默认按照角色跳转。 2、传固定值 '1' 时跳转内推官网。 3、优先级高于returnUrl |
returnUrl | 否 | 登录成功后跳转的地址。 1、不传该参数时则默认跳转到对应角色的首页。 2、传该参数时登录成功后会跳转到该地址。 3、优先级低于ifGoRecommendWeb |
e、客户授权url说明
url说明
客户的授权url,客户需要在该页面填写账号密码进行登录
HTTP 接口
GET https://www.third.com/oauth/authorize
(客户提供的登录地址)
请求Path参数
无
请求Query
字段 | 必填 | 描述 |
---|---|---|
responseType | 是 | 固定值 code |
clientId | 是 | 应用id。 1、该参数由客户提供 |
redirectUri | 是 | 回调地址。授权成功后的重定向地址。 1、该参数由moka提供 |
scope | 是 | 授权范围。 1、该参数由客户提供 |
state | 是 | 授权成功后,重定向到回调地址时需要携带该参数 1、该参数由moka提供 |
f、客户获取令牌url说明
url说明
客户的授权url,客户需要在该页面填写账号密码进行登录
HTTP 接口
GET https://www.third.com/oauth/token
(客户提供的登录地址)
请求Path参数
无
请求Query
字段 | 必填 | 描述 |
---|---|---|
clientId | 是 | 应用id。 1、该参数由客户提供 |
clientSecret | 是 | 应用secret。 1、该参数由客户提供 |
grantType | 是 | 授权方式。固定值authorization_code。 |
code | 是 | 上一步授权后获取到的授权码code。 |
redirectUri | 是 | 令牌token颁发后的回调网址。 1、该参数由moka提供 |
返回结果
字段 | 字段 | 必填 | 描述 |
---|---|---|---|
code | number | 是 | 接口状态码。0: 成功 |
msg | string | 是 | 接口调用说明 |
data | object | 是 | 返回值 |
data.accessToken | string | 是 | 令牌token |
data.expiresIn | string | 是 | 令牌过期时间 |
data.refreshToken | string | 是 | 令牌刷新token |
g、客户获取用户信息url说明
url说明
客户的获取用户信息接口url,可以通过该接口获取授权客户的用户信息
HTTP 接口
GET https://www.third.com/user
(客户提供的登录地址)
请求Path参数
无
请求Query
字段 | 必填 | 描述 |
---|---|---|
accessToken | 是 | 令牌token。通过token接口获取 |
返回结果
字段 | 字段 | 必填 | 描述 |
---|---|---|---|
code | number | 是 | 接口状态码。0: 成功 |
msg | string | 是 | 接口调用说明 |
data | object | 是 | 返回值 |
data.email | string | 是 | 客户邮箱 |