开始开发
开始开发
企业应用中的URL链接(包括自定义菜单或者消息中的链接),均可通过OAuth2.0验证接口来获取成员的UserId身份信息。
OAuth2简介
详细的协议介绍,开发者可以参考RFC 6749。

A) 用户访问第三方服务,第三方服务通过构造OAuth2链接(参数包括当前第三方服务的身份ID,以及重定向URI),将用户引导到认证服务器的授权页
B) 用户选择是否同意授权
C) 若用户同意授权,则认证服务器将用户重向到第一步指定的重定向URI,同时附上一个授权码。
D) 第三方服务收到授权码,带上授权码来源的重定向URI,向认证服务器申请凭证。
E) 认证服务器检查授权码和重定向URI的有效性,通过后颁发AccessToken(调用凭证)
D)与E)的调用为后台调用,不通过浏览器进行
企业微信OAuth2接入流程

图1 企业微信OAuth2流程图
使用OAuth2前须知
关于网页授权的可信域名
要求配置的可信域名,必须与访问链接的域名完全一致。举个例子:
配置域名 | 是否正确 | 原因 |
---|---|---|
mail.qq.com:8080 | ![]() | 配置域名与访问域名完全一致 |
email.qq.com | ![]() | 配置域名必须与访问域名完全一致 |
support.mail.qq.com | ![]() | 配置域名必须与访问域名完全一致 |
*.qq.com | ![]() | 不支持泛域名设置 |
mail.qq.com | ![]() | 配置域名必须与访问域名完全一致,包括端口号 |
访问链接 | 是否正确 | 原因 |
---|---|---|
https://mail.qq.com/cgi-bin/helloworld | ![]() | 配置域名与访问域名完全一致 |
http://mail.qq.com/cgi-bin/redirect | ![]() | 配置域名与访问域名完全一致,与协议头/链接路径无关 |
https://exmail.qq.com/cgi-bin/helloworld | ![]() | 配置域名必须与访问域名完全一致 |
关于UserID机制
缓存方案建议
1、企业应用中的URL链接直接填写企业自己的页面地址
2、成员操作跳转到步骤1的企业页面时,企业后台校验是否有标识成员身份的cookie信息,此cookie由企业生成
3、如果没有匹配的cookie,则重定向到OAuth验证链接,获取成员的身份信息后,由企业后台植入标识成员身份的cookie信息
4、根据cookie获取成员身份后,再进入相应的页面
修改于 2022-01-14 04:25:58