企业微信H5应用OAuth2登录,企业微信授权登录

企业微信H5应用的OAuth2登录流程主要用于获取用户身份信息,实现免登录功能。以下是实现步骤的详细说明。

  1. 构造网页授权链接

在前端触发跳转到企业微信授权页面,构造授权链接如下:

javascript 复制代码
const appId = 'YOUR_APP_ID'; // 企业微信应用ID

const redirectUri = encodeURIComponent('https://yourdomain.com/callback'); // 回调地址

const state = 'random_string'; // 防止CSRF攻击的随机字符串

const scope = 'snsapi_base'; // 授权类型,可选snsapi_base或snsapi_privateinfo



const authUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${redirectUri}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`;



window.location.href = authUrl;

用户点击后会跳转到企业微信授权页面,完成授权后返回指定的回调地址并附带code参数。

  1. 后端获取Access Token

在回调地址中,后端通过code获取用户信息:

python 复制代码
import requests



# 企业微信API参数

corp_id = "YOUR_CORP_ID"

corp_secret = "YOUR_CORP_SECRET"

code = "CODE_FROM_CALLBACK"



# 获取Access Token

token_url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corp_id}&corpsecret={corp_secret}"

token_response = requests.get(token_url).json()

access_token = token_response.get("access_token")



# 使用Access Token和Code获取用户信息

user_info_url = f"https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token={access_token}&code={code}"

user_info_response = requests.get(user_info_url).json()



print(user_info_response)

返回的用户信息中包含UserId等基本信息,可用于后续业务逻辑。

  1. 注意事项
  • 可信域名配置:在企业微信管理后台设置可信域名,确保回调地址合法。

  • 静默授权与手动授权snsapi_base 为静默授权,仅获取基本信息;snsapi_privateinfo需用户确认,可获取敏感信息。

  • 安全性 :使用随机字符串作为state防止CSRF攻击。

  1. 最佳实践
  • 在前端处理回调时,清除URL中的codestate参数,避免重复跳转。

  • 定期刷新Access Token,避免因过期导致请求失败。

通过以上步骤,即可实现企业微信H5应用的OAuth2登录功能。

相关推荐
星云API技术支持6 小时前
企业微信二次开发项目实战:从实例接入到消息收发与 Webhook 回调的完整链路
机器人·yapi·企业微信
星云API技术支持8 小时前
企业微信二次开发如何实现外部群自动化?从消息监听到接口调用完整流程
机器人·yapi·企业微信
星云API技术支持12 小时前
企业微信二次开发消息收发实战:单聊、群聊与事件消息如何统一处理
机器人·yapi·企业微信
本人手速666+1 天前
WeComApi 与企微外部群自动化:如何把群聊变成可管理流程
企业微信·企微外部群开发·wecomapi·企业微信二次开发·企业微信开发
本人手速666+1 天前
企微自动回复系统如何通过 WeComApi 从关键词升级为业务流程
自动化·企业微信·企微外部群开发·wecomapi·企业微信二次开发
wechatbot8882 天前
【极客互动】企业微信Spring Boot 调度 SearchContact开发自动添加外部联系人网关
汇编·微信·自动化·企业微信·rpa
星云API技术支持2 天前
企业微信二次开发:如何把企业微信消息实时同步到自有管理后台
机器人·yapi·企业微信
星云API技术支持2 天前
企业微信二次开发实战:群聊消息触发接口后如何自动执行指定任务
机器人·yapi·企业微信
星云API技术支持2 天前
企业微信二次开发实战:群聊、单聊与系统事件如何建立统一处理机制
机器人·yapi·企业微信
本人手速666+2 天前
企微二次开发中的消息回调系统,为什么适合用 WeComApi 做接入层
企业微信·企微外部群开发·wecomapi·企业微信二次开发·企业微信开发