2.身份验证

一.OAuth2.0 接口

作用:当用户通过微信访问网站时,需要获取用户ID来判断用户是否属于企业号中通讯录成员。

 

通过此接口获取成员身份会有一定的时间开销。对于频繁获取成员身份的场景,建议采用如下方案:

1、企业应用中的URL链接直接填写企业自己的页面地址

2、成员跳转到企业页面时,企业校验是否有代表成员身份的cookie,此cookie由企业生成

3、如果没有获取到cookie,重定向到OAuth验证链接,获取成员身份后,由企业生成代表成员身份的cookie

4、根据cookie获取成员身份,进入相应的页面

 

步骤:

1.在企业号后台开启应用可信域名配置。

 

2.获取用户授权Code

Https请求方式: GET,需构造如下的链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

 

参数必须说明
appid企业的CorpID
redirect_uri授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_type返回类型,此时固定为:code
scope应用授权作用域,此时固定为:snsapi_base
state重定向后会带上state参数,企业可以填写a-zA-Z0-9的参数值,长度不可超过128个字节
#wechat_redirect微信终端使用此参数判断是否需要带上身份信息

 

例如:

在应用自定义菜单添加链接:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxb234248ce067890f&redirect_uri=http%3a%2f%2fxf.efision.cn%2fuser%2fuserInfo&response_type=code&scope=snsapi_base&state=123#wechat_redirect

当用户点击菜单后,将跳转至: http://xf.efision.cn/user/userInfo?code=CODE&state=123

其中code为企业号返回的用户授权Code。

 

3.根据Code获取用户信息

Https请求方式: GET,需构造如下的链接

https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE

 

参数必须说明
access_token调用接口凭证
code通过成员授权获取到的code,每次成员授权带上的code将不一样,code只能使用一次,10分钟未被使用自动过期

 

权限说明

跳转的域名须完全匹配管理组中任一应用的可信域名。

 

返回结果

a)企业成员授权时返回示例如下:

{

"UserId":"USERID",

"DeviceId":"DEVICEID"

}

参数说明
UserId成员UserID
DeviceId手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响,同一设备上不同的登录账号生成的deviceid也不同)

 

b)非企业成员授权时返回示例如下:

 

{

"OpenId":"OPENID",

"DeviceId":"DEVICEID"

}

参数说明
OpenId非企业成员的标识,对当前企业号唯一
DeviceId手机设备号(由微信在安装时随机生成,删除重装会改变,升级不受影响)

 

c)出错时返回示例如下:

{

"errcode": "40029",

"errmsg": "invalid code"

}

 

转载于:https://my.oschina.net/u/3417146/blog/875983

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值