大纲
移动千里眼一键登录接入手册 一.准备工作
什么是授权登录:
授权:客户授权给第三方应用,欧博需要用户输入手机号以及验证码。
登录: 从第三方应用直接跳转到移动千里眼,用户不用输入账号、密码。
授权登录有什么限制:
授权登录的期限(refresh_token)有效期只有180天。
每次调用接口刷新token后,必须保存接口返回的最新的refresh_token。
从第三方应用跳转到移动千里眼,必须每次用授权后获取的refresh_token重新获取跳转地址。
跳转地址使用后立即失效。
1.1 在开放平台门户上申请一键登录应用注意:一定要在“重定向地址栏里”填写正确的第三方平台对接地址。
申请应用完成后待管理员审核,审核可能需要3-5个工作日。 待审核完成后,登录开放平台控制台,可看到审核完成的记录。
二.查看应用信息和调试工具 2.1 查看应用信息点击应用详情和应用配置,可查看接入移动千里眼视频平台需要的appID,secret, RSA密钥等信息
2.2 调试工具点击调试按钮,跳转调试工具面板
点击获取code按钮,弹出授权页面,输入移动千里眼账号验证码,拿到授权code
测试的redirect-uri写入https://www.baidu.com?# 测试工具跳转到百度,在地址栏上复制网页地址可看到内容为:https://www.baidu.com/?state=unknown&code=783d3ecc526de225e29e00df598097c0# 可见授权码code就附在链接最后
将获取到的code=783d3ecc526de225e29e00df598097c0贴入调试工具,欧博娱乐点击获取token按钮
返回值当中就有刷新token,和跳转链接url。 使用url就可以直接一键登录进入移动千里眼前端页面若返回值中无url ,可继续点击获取访问链接按钮
最终得到的url 就可以直接一键登录移动千里眼前端页面三.接入调试 3.1 第三方接入一键登录能力流程图 3.2 第三方平台获取授权码注意:
获取token相关接口无需遵循总体规范
授权登录移动千里眼应用采用 OAuth 2.0 标准定义的方式来完成应用授权,目前仅支持 Authorization Code Grant 模式
第三方前端通过授权页链接获取授权码code
获取授权页链接(authorization endpoint)
https://open.andmu.cn/normal/oauth/authorize?response_type=code&client_id={appid}&redirect_uri={xxx}&state={xxx}
redirect_uri 回调时携带的参数: - client_id :用信息里可查看到的应用Id - redirect_uri :申请应用时第三方填入的重定向地址 - state :状态值,不能为空
授权页验证通过后,物联网平台会将授权码code放入重定向地址中。第三方平台可通过重定向地址拿到授权码code
第三方平台拿到授权码code后,可向物联网平台获取访问令牌和刷新令牌
注意:授权码code使用一次后即失效
3.3 第三方平台获取访问令牌(token)获取访问令牌接口
https://open.andmu.cn/normal/oauth/token
post 参数:post form-data请求体参数(content-type: application/x-www-form-urlencoded;charset=UTF-8)
grant_type : 授权类型,固定值 authorization_code 或 refresh_token
client_id : 应用ID,在应用信息里面查看
client_secret : 应用密码,在应用信息里面查看
redirect_uri : 重定向网址,获取code时传入的redirect_uri
code : 授权码,来源于通过redirect_uri回调时携带的code
refresh_token: 刷新 access_token, grant_type 为refresh_token必传
响应报文:
json{ "access_token": "xxx", "refresh_token": "yyy", "token_type": "bearer", "expires_in": 7200, "url": "https://qly.andmu.cn/normal/#/login?token={xxx}" }
注意:刷新token(refresh_token)有效时长为半年。
提示:根据以上接口若返回值中有url地址, 则可以直接通过url访问移动千里眼web(仅能使用一次)。 若未拿到url,则根据access_token 通过下面的接口获取一键登录链接。
3.4 第三方平台获取一键登录链接https://open.andmu.cn/normal/oauth/getLoginUrl
post 参数:post form-data请求体参数(content-type: application/x-www-form-urlencoded;charset=UTF-8)
access_token : 访问令牌
响应报文:
json{ "url": "https://qly.andmu.cn/normal/#/login?token={xxx}" }
注意:访问令牌(access_token)有效时间为2小时。即返回的url登录成功后立即失效。
四.FAQQ:客户想从三方系统直接单点登录到移动千里眼,是否支持。
A:不支持,目前只支持授权登录的方式。
Q:为什么我调用接口提示APPID不存在。
A:出于安全考虑,接口的调用必须要进行签名,具体方式请参考:
Q:为什么我调用接口提示签名认证失败。
A:这种提示一般是签名有误,请参考文档: ,建议采取以下的方式排查问题:
1、检测头部参数是否有误;
2、生成的签名字符串是否有误;
3、根据示例的参数,计算签名,判断签名函数是否有误。
Q:为什么我签名也对了,但是还是出现数据验证失败的错误。
A:这种提示一般是body参数有误,必须保证计算MD5的body数据与传输到服务器的body数据是一致的。
Q:授权登录的时候,输入了手机号和验证码,服务器返回的链接中是server_error。
A:1、检查redirect-uri是否与申请的时候一致。2、检查state参数是否为空,该参数不能为空。
Q:授权登录的时候,输入手机号码和验证码后,服务器返回的code在哪里了,只看到了一个页面。
A:页面会跳转到你设置的redirect-uri页面,在在地址栏上复制网页地址可看到内容为:https://....state=xxxxx&code=783d3ecc526de225e29e00df598097c0 可见授权码code就附在链接最后
Q:授权登录,为什么获取到code之后,使用该code无法获取token。
A:检查redirect-uri地址后面是不是有#等特殊符号。如果是去掉code=参数后的#等特殊符号。
Q:为什么我访问开放平台接口超时,访问其他地方没有问题。
A:检查机器是否被入侵,有可能进行了非法扫描被拉入了黑名单。
Q:授权登录的时候,用户授权后系统只返回了一个code授权码,怎么判断授权码是那个用户的呢?
A: 用户授权后,redirect_uri 回调时携带的参数是两个:code 、state;code是系统返回的授权码。state参数可以自行设置。
Q:授权登录获取访问令牌接口,为什么我的refresh_token使用一次过后再次调用就不行了。
A:该接口每次调用后,都会返回新的refresh_token,下次调用需要使用新的refresh_token。
Previous page移动千里眼Web能力接入手册
Next page技术支持工单流程