 客服热线:560+104
OAuth协议
此功能已过时,建议使用《中央授权中心》对应新功能。参考: https://sso.foxconn.com/Developer/Document/OIDC
 目录 [隐藏]
相信基本的OAuth协议
一步获得用户信息
获取用户GPS位置
获取用户人脸识别信息
OAuth链接的发布
 相信基本的OAuth协议  

OAuth协议(Authorization code授权认证)处理,主要流程分为三步:

1. 获取code
2. 通过code获取openid、access_token
3. 通过appid、openid、access_token获取订阅用户信息
注:appid可以在“操作平台(https://civetpublic.foxconn.com) -> OAuth链接”页面中查看。

现举例介绍网页Authorization code授权认证的具体实现步骤如下:

假设生活频道用户zyzx,有考勤网站: https://kq.hqit.com/ , 网站绑定用户信息的页面为 https://kq.hqit.com/Bind 。 现要实现绑定相信用户,并获得网站相关信息功能,则需要执行如下步聚。

绑定页面网址是可以带参数的,我们建议您仅使用一个页面来接收并解析相信用户数据,解析成功之后再根据网址所带的参数进行页面跳转。例如绑定网址为 https://kq.hqit.com/Bind?to_fun=5,您的网站根据to_fun值跳至新的页面。
但需注意您绑定的网址不能使用:Code、Position、FaceInfo参数,以免与相信用户加密数据冲突。

第一步:请求code

1、用户在文本消息或菜单中设定OAuth链接
用户zyzx在编辑链接消息时不能直接使用 https://kq.hqit.com/Bind ,而是通过生活频道功能菜单下的OAuth网页授权,对其进行处理, 生成如下OAuth链接格式: https://civetinterface.foxconn.com/Open/oauth?appid=[您的AppID]&redirect_uri=https%3A%2F%2Fkq.hqit.com%2FBind&scope=snsapi_userinfo

注:1. appid是生活频道的身份标识,每个生活频道有一固定值。
    2. redirect_uri为重定向地址。
    3. scope为可选参数,值有:snsapi_userinfo(默认)、snsapi_base、snsapi_password。
        其中:
        ·snsapi_userinfo 返回的code能查询用户信息,但需要用户授权。用户授权一次在24小时内生活频道获取其用户信息。
        ·snsapi_base 仅能获得用户的openid,但无需用户授权。
        ·snsapi_password 返回的code能查询用户信息,但需要用户输入相信密码并授权。用户授权一次在30分钟内生活频道获取其用户信息。
    4. 可选参数scope_tips,值有:false、true(默认)。此参数仅在scope=snsapi_password有效,表示是否提示相信用户授权的资料范围,为true时提示。
    5. 可选参数timeout,值为数字。此参数在scope不等于snsapi_base时有效,表示用户授权一次的有效时间分钟数。
        ·scope=snsapi_userinfo时,默认值为1440(即一天)。设定时超过默认值1440则无效。
        ·scope=snsapi_password时,默认值为30。设定时超过默认值30则无效。
    6. 可选参数getlocation,值有:false(默认)、true。当为true可以获得用户位置信息。
    7. 可选参数getface,值有:false(默认)、true。当为true可以获得用户人脸识别信息。
                      

2、生活频道服务器接收请求後,将上述Url重置成:
https://kq.hqit.com/Bind?code=[加密Code]
其中code包含了订阅的信息及5分锺之後过期信息。

第二步:通过code获取openid、access_token

获取第一步的code后,请求以下链接获取openid、access_token
https://civetinterface.foxconn.com/open/access_token?code=[加密Code]&appid=[您的AppID]

接口返回信息

其中openid是订阅者的身份标识,不同生活频道的订阅者有不同的openid。用户系统接口可以将openid绑到用户账号下次即可实现免登录。 expires_in为请求过期时间。

第三步:通过appid、openid、access_token获取订阅用户信息

接口地址为:
https://civetinterface.foxconn.com/open/get_user_info?appid=[您的AppID]&openid=[OpenID]&access_token=[访问Token]

得到用户信息
 一步获得用户信息  

在相信基本的OAuth协议基本上系统做了改正,在跳至第三方系统页面:
https://kq.hqit.com/Bind?code=[加密Code]
相信基本的OAuth协议获得code直接调用接口

https://civetinterface.foxconn.com/open/get_user_info_bycode?code=[加密Code]&appid=[您的AppID]

接口返回信息
 获取用户GPS位置

用仅需在OAuth地址后加上“&getlocation=true”,地址重载时就会加上“&Position=信息”。如上述的OAuth地址可以变为:

https://civetinterface.foxconn.com/Open/oauth?appid=[AppID]&redirect_uri=https%3A%2F%2Fkq.hqit.com%2FBind&getlocation=true

重载后的地址格式则为:
https://kq.hqit.com/Bind?code=[加密Code]&Position=[经纬度加密信息]

第三方系统根据原来获的OpenID,请求以下接口即可以获得用户位置信息。
https://civetinterface.foxconn.com/open/get_user_position?openid=[OpenID]&Position=[经纬度加密信息]

 获取用户人脸识别信息

用仅需在OAuth地址后加上“&getFace=true”,地址重载时就会加上“&FaceInfo=信息”。如上述的OAuth地址可以变为:

https://civetinterface.foxconn.com/Open/oauth?appid=[AppID]&redirect_uri=https%3A%2F%2Fkq.hqit.com%2FBind&getFace=true

重载后的地址格式则为:
https://kq.hqit.com/Bind?code=[加密Code]&FaceInfo=[人脸验证结果加密信息]

第三方系统根据原来获的OpenID,请求以下接口即可以获得用户位置信息。
https://civetinterface.foxconn.com/open/get_user_faceinfo?openid=[OpenID]&FaceInfo=[人脸验证结果加密信息]

 OAuth链接的发布

生成好的OAuth链接之后,可通过以下方式发布给用户:1)通过文字消息、图文消息、(二维码)图片消息等消息格式单发或群发给对应相信用户,或通过回复的方式给用户;2)通过设定相信“自定义菜单”的“设置链接”,让用户点击菜单开启OAuth链接; 3)通过网的链接或JS跳转的方式跳至OAuth链接。