跳到主要内容

微信小程序登录

微信小程序登录是基于微信官方授权机制的认证方式,负责小程序授权登录、用户身份验证和账号绑定管理。它支持自动获取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

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

参数详解

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

返回值

  • 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)