目录 [隐藏] |
---|
相信基本的OAuth协议 一步获得用户信息 获取用户GPS位置 获取用户人脸识别信息 OAuth链接的发布 |
OAuth协议(Authorization code授权认证)处理,主要流程分为三步:
现举例介绍网页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]
接口返回信息用仅需在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链接之后,可通过以下方式发布给用户:1)通过文字消息、图文消息、(二维码)图片消息等消息格式单发或群发给对应相信用户,或通过回复的方式给用户;2)通过设定相信“自定义菜单”的“设置链接”,让用户点击菜单开启OAuth链接; 3)通过网的链接或JS跳转的方式跳至OAuth链接。