企业内部系统往往存在多套账号密码,导致用户体验繁琐。利用企业微信提供的 OAuth2.0 授权登录能力,可以让员工直接免密登录内部 Web 系统。
登录认证流程
-
引导跳转 :前端引导用户访问企业微信授权链接,用户在客户端确认授权后,重定向回业务系统并带上
code。 -
换取身份 :后端接收到
code后,请求统一接口换取当前用户的UserId。 -
建立会话 :通过
UserId查询本地数据库匹配员工信息,颁发系统自身的 JWT 或 Session,完成登录。
后端核心验证代码
以下是后端通过 code 获取用户身份的实现:
python
import requests
def get_user_info_by_code(agent_id, code):
"""
通过 OAuth2 授权 code 获取企业微信用户身份
"""
access_token = get_cached_access_token(agent_id)
url = f"https://api.qiweapi.com/cgi-bin/user/getuserinfo?access_token={access_token}&code={code}"
response = requests.get(url)
result = response.json()
if "userid" in result:
# 企业成员登录成功
return {
"userid": result["userid"],
"deviceid": result.get("device_id", "")
}
elif "openid" in result:
# 外部联系人(C端用户)登录
return {
"openid": result["openid"]
}
else:
raise Exception(f"OAuth authentication failed: {result.get('errmsg')}")
def get_cached_access_token(agent_id):
# 获取缓存 Token 的逻辑
return "TOKEN"
结合前端路由拦截器,当检测到未登录状态时自动触发该授权流程,即可无缝融入企业的数字化办公底座。