跳到主要内容
版本:1.6.x

微信小程序登录

微信小程序登录是基于微信官方授权机制的认证方式,负责小程序授权登录、用户身份验证和账号绑定管理。它支持自动获取openId/unionId等微信用户标识、绑定码机制新用户注册、Session密钥安全管理和账号绑定/解绑操作,与微信小程序生态深度集成。

微信小程序登录元素分层结构为Meta(auths.loginTypes.Meta) → Type(auths.loginTypes.WeChatMiniType) → 实例,开发者可通过JitAI的可视化开发工具快捷地创建微信小程序登录实例元素。

当然,开发者也可以创建自己的Type元素,或者在自己的App中改写JitAI官方提供的auths.loginTypes.WeChatMiniType元素,以实现自己的封装。

快速开始​

创建实例元素​

目录结构​

推荐目录结构
myWeChatMiniLogin/ # 实例元素名称
├── e.json # 元素声明文件
└── myWeChatMiniLogin.json # 业务配置文件

e.json文件​

e.json配置示例
{
"type": "auths.loginTypes.WeChatMiniType",
"title": "微信小程序登录",
"allowRegister": 1,
"backendBundleEntry": ".",
"frontBundleEntry": "./myWeChatMiniLogin.json"
}

业务配置文件​

微信小程序认证配置
{
"authConfig": {
"appId": "your_mini_program_app_id",
"appSecret": "your_mini_program_app_secret"
}
}

调用示例​

基础调用示例
# 获取实例
wechat_auth = app.getElement("auths.loginTypes.myWeChatMiniLogin")

# 小程序登录
result = wechat_auth.getLoginCode("wx_code_from_miniprogram")

元素配置​

e.json配置​

配置项类型对应原生类型必填说明
typeStextstr是固定值:auths.loginTypes.WeChatMiniType
titleStextstr是登录方式显示名称
allowRegisterNumericint否是否允许新用户注册,1:允许,0:不允许,默认0
backendBundleEntryStextstr是固定值:"."
frontBundleEntryStextstr是业务配置文件路径

业务配置文件配置​

配置项类型对应原生类型必填说明
authConfig.appIdStextstr是微信小程序AppID
authConfig.appSecretStextstr是微信小程序AppSecret

方法​

getLoginCode​

处理微信小程序授权登录,根据用户注册状态返回不同结果。

参数详解​

参数名类型对应原生类型必填说明
codeStextstr是微信小程序wx.login()获取的临时授权码

返回值​

  • 已注册用户:JitDict 类型,包含loginCode和corpList
  • 未注册用户(allowRegister=1):JitDict 类型,包含bindCode(5分钟有效期)

使用示例​

登录授权处理
result = wechat_auth.getLoginCode("wx_mini_code")

if "loginCode" in result:
# 已注册用户
login_code = result["loginCode"]
elif "bindCode" in result:
# 新用户,需要注册
bind_code = result["bindCode"]

register​

使用绑定码完成新用户注册流程。

参数详解​

参数名类型对应原生类型必填说明
bindCodeStextstr是getLoginCode返回的绑定码

返回值​

  • RowData 类型:新创建的用户对象

使用示例​

新用户注册
user = wechat_auth.register("bind_code_from_getLoginCode")
print(f"用户注册成功:{user.userId.value}")

bind​

绑定现有用户账号与微信小程序。

参数详解​

参数名类型对应原生类型必填说明
userIdNumericint是要绑定的用户ID
codeStextstr是微信小程序授权码

返回值​

  • JitDict 类型:操作结果字典

使用示例​

账号绑定
result = wechat_auth.bind(123, "wx_mini_code")

unbind​

解除用户账号与微信小程序的绑定关系。

参数详解​

参数名类型对应原生类型必填说明
userIdNumericint是要解绑的用户ID

返回值​

  • JitDict 类型:操作结果字典

使用示例​

账号解绑
result = wechat_auth.unbind(123)

属性​

allowRegister​

  • 类型:Numeric (int)
  • 说明:控制是否允许新用户注册,1:允许,0:不允许

authConfig​

  • 类型:JitDict (dict)
  • 说明:微信小程序认证配置,包含appId和appSecret

高级特性​

完整注册流程​

当allowRegister=1时,新用户可通过绑定码机制完成注册,该流程包含授权检查、绑定码生成和用户创建等步骤。

新用户完整注册流程
wechat_auth = app.getElement("auths.loginTypes.myWeChatMiniLogin")

# 尝试登录获取绑定码
login_result = wechat_auth.getLoginCode("wx_mini_code")

if "bindCode" in login_result:
# 使用绑定码完成注册
bind_code = login_result["bindCode"]
new_user = wechat_auth.register(bind_code)
print(f"注册成功,用户ID:{new_user.userId.value}")

账号绑定管理​

支持将微信小程序与现有用户账号进行绑定和解绑操作,便于用户账号体系整合。

账号绑定管理
# 绑定现有账号
bind_result = wechat_auth.bind(user_id, "wx_mini_code")

# 需要时解绑账号
unbind_result = wechat_auth.unbind(user_id)