浙里办新用户绑定说明
判断是否需要绑定
- 任何获取用户数据的接口都能在用户对象中拿到参数
need_bind
,类型是tinyInteger
,对应说明如下
数值 | 说明 |
---|---|
1 | 需要绑定 |
9 | 无需绑定 |
- 当
need_bind
的值为9
时无需操作,当值为1
时需要走绑定流程。理论上如果用户需要绑定,应拒绝用户的一切业务操作,仅允许他走绑定流程。否则可能会造成绑定完成后已产生用户数据的丢失。
登录流程回顾
对于前端而言,IRS
用户绑定与IRS
用户登录采用同一套接口,仅在参数上存在一些区别。所以先回顾一下IRS
登录流程。
也可以跳过回顾直接前往绑定流程部分。
IRS
登录的大致流程:- 用户需要先跳转至IRS单点登录地址 .
- 完成登录后跳转至网关接口 ,网关接口验证用户信息后生成用户 access_token。
- 跳转至前端业务页面 。
- 所以
IRS
登录接口实际上是分别由IRS单点登录地址 ,网关接口 ,业务页面 三部分组成的。 - IRS单点登录地址 是跳转的第一部分,是一个正常的地址
- 网关接口 是跳转的第二部分,作为第一部分的`spappurl`参数跟在IRS单点登录地址 的`query`部分。
- 业务页面 是跳转的第三部分,作为第二部分的`goto`参数跟在网关接口 的`query`部分。
- 所以最终跳转地址的形式为
https://esso.zjzwfw.gov.cn/opensso/spsaehandler/metaAlias/sp?spappurl=https://dea-api.idtshow.com:8443/ban/api/v1/login/irs?goto=
+ url_encode
绑定流程
- 获取当前url,并将其进行url编码
1 | let url_encode = encodeURIComponent(location.href); |
- 在url编码前拼接登录指定地址。
- 测试服地址:
https://esso.zjzwfw.gov.cn/opensso/spsaehandler/metaAlias/sp?spappurl=https://gdte-api.cloudvhall.com:8443/ban/api/v1/login/irs?goto=
- 正式服地址:
https://esso.zjzwfw.gov.cn/opensso/spsaehandler/metaAlias/sp?spappurl=https://dea-api.idtshow.com:8443/ban/api/v1/login/irs?goto=
- 测试服地址:
1 | // 正式服地址 |
- 在登录地址后面拼接参数
bind_user_id
,值为用户对象中的id
,使接口进行用户绑定操作。
1 | let bind_user_url = irs_url + "&bind_user_id=" + userData.id |
- 令浏览器跳转至拼接出来的单点登录地址。
1 | location.href = bind_user_url; |
测试账号
- 公共测试账号:zjfrcszh
- 公共密码:Zjfrcszh123
测试用快捷地址
首先在浏览器中打开浙江口岸的登录页面完成登录
- 账号
testsso
- 密码
test1234
- 账号
访问下方地址一步完成
浙江口岸
用户认证为BAN用户
的登录流程。1
https://testsso.chinabeston.com:41/sso/oauth?appId=SWT00011&url=https://gdte-zlb.cloudvhall.com/findhall/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 罐罐头工厂!
评论