登录验证

相关概念

应用 接入SSO的第三方系统 Oauth2.0 用户资源授权标准 auth_code SSO给予应用的授权码, 有效时间60s,只生效1次 access_code 通过授权码交换的SSO给与应用的接入码,有效期4小时 有效期内生效

登录验证流程

  1. 应用浏览器重定向到 SSO
  2. 验证通过后SSO浏览器重定向到应用携带auth_code
  3. 后台调用SSO接口使用auth_code 获取 access_code
  4. 后台调用SSO接口使用access_code 获取 用户信息

浏览器重定向到SSO (调用)

说明

当用户需要登录第三方系统(后文统称应用)时可以通过SSO系统进行用户身份验证,此过程需要通过用户浏览器跳转至SSO,因此第三系统需要设定合适的超链接,或者进行重定向

请求地址
http://authtest.hengchanglt.com/authorize
请求方式

GET(浏览器请求)

参数说明
参数名称 参数类型 是否必须 参数说明
returnurl string 必须项 浏览器重定向地址(由于安全限制,会根据key校验url,请务必提前沟通)
appkey string 必须项 应用经过认证的key
state string 可选项 用于保持请求和回调的状态,授权后原样带回给应用。用于防止csrf攻击(跨站请求伪造攻击),建议使用
调用样例
浏览器访问 http://authtest.hengchanglt.com/authorize?appkey=testkey&returnurl=http://127.0.0.1:8080/login&state=teststate

验证通过,重定向到应用(接收)

SSO 验证通过后会通过浏览器重定向到应用

调用地址

浏览器重定向至returnurl并携带auth_code(授权码)state returnurl?auth_code=xxxxx&state=xxxxx

eg. http://127.0.0.1:8080/login?auth_code=150120da286fcc2bb8331af40655eb70&state=teststate

后台调用接口获取 access_code

说明

第三方系统直接接入SSO。根据Oauth2.0标准 授权码模式, 通过浏览器重定向方式提供应用授权码, 然后应用使用授权码与SSO系统直接联系换取接入码

请求地址
http://authtest.hengchanglt.com/getaccesstoken
请求方式

POST(服务器直接请求)

参数说明
参数名称 参数类型 是否必须 参数说明
appkey string 必须项 应用经过认证的key
auth_code string 必须项 url重定向携带的授权码
返回结果 (Json)

成功:

{
    "code":200,
    "errmsg":"successs",
    "access_token":"test_access_token"
}

出错:

{
    "code":400,
    "errmsg":"auth_code is invaild or expired.",
    "data":"test_auth_code"
}
调用样例
请求url:http://authtest.hengchanglt.com/getaccesstoken
请求data: {"appkey":"testkey", "auth_code":"test_auth——code"}
返回结果:{"code":200,"errmsg":"successs","access_token":"test_access_token"}

后台调用接口获取用户信息

说明

应用使用上一步获取的access_token, 与SSO直接连接请求登录的用户信息。

请求地址
http://authtest.hengchanglt.com/getuserinfo
请求方式

POST(服务器直接请求)

参数说明
参数名称 参数类型 是否必须 参数说明
access_token string 必须项 应用上一步使用auth_code换取的接入码
返回结果(Json)

成功:

{
    "username": "张三",
    "usermail": "zhangsantest@credithc.com",
    "usermobile": "13700000001",       #手机
    "department": "技术中心",
    "ehrid": "1000000001",
    "imageurl": "http://p.qlogo.cn/bizmail/6X90Q25vYMhwPb6LsWk1xAyzBAXqUicXXiaxw6ib9NU7aViaG3YFLu0ic4g/0"  #企业微信头像url
}

出错

{
    "code":400,
    "errmsg":"sessionid is empty.",    #报错信息
    "data":""                          #出错的数据
}
调用样例
请求url:http://authtest.hengchanglt.com/getuserinfo
请求data: {"access_token":"testaccess_token"}
返回结果: {
    "username": "张三",   
    "usermail": "zhangsantest@credithc.com",   
    "usermobile": "13700000001",   
    "department": "技术中心",   
    "ehrid": "1000000001", 
    "imageurl": "http://p.qlogo.cn/bizmail/6X90Q25vYMhwPb6LsWk1xAyzBAXqUicXXiaxw6ib9NU7aViaG3YFLu0ic4g/0"
}

results matching ""

    No results matching ""