WeChat mini program
WeChat Mini Program support is available from Casdoor 1.41.0.
WeChat Mini Program does not use standard OAuth redirects, so sign-in uses the mini program’s login code sent to Casdoor instead of a redirect to the Casdoor page. Example: casdoor-wechat-miniprogram-example. See also WeChat Mini Program login.
Config: CASDOOR_HOSTNAME — the Casdoor server URL (e.g. https://door.casbin.com).
Paso 1: Desplegar Casdoor
Deploy the Casdoor server. Then:
- Confirm Casdoor is reachable and working.
- In
conf/app.conf, setorigintoCASDOOR_HOSTNAME.

Step 2: Configure the application
- In Casdoor, create an OAuth provider with type WeChat and set APPID and APPSECRET from the WeChat Mini Program admin.

- Create or edit a Casdoor application and add that WeChat provider.
Step 3: Mini program code
The mini program calls wx.login() to get a login code, then sends that code to Casdoor. Casdoor exchanges it with WeChat for OpenID and SessionKey. Example:
// Login in mini program
wx.login({
success: res => {
// This is the login code that needs to be sent to Casdoor
console.log(res.code)
wx.request({
url: `${CASDOOR_HOSTNAME}/api/login/oauth/access_token`,
method: "POST",
data: {
"tag": "wechat_miniprogram", // Required
"client_id": "6825f4f0af45554c8952",
"code": res.code,
"username": this.data.userInfo.nickName, // Update user profile when you log in.
"avatar": this.data.userInfo.avatarUrl,
},
header:{
"content-type": "application/x-www-form-urlencoded",
},
success: res => {
console.log(res)
this.globalData.accessToken = res.data.access_token // Get Casdoor's access token
}
})
}
})
Es importante notar que el parámetro tag es obligatorio para informar a Casdoor que esta es una solicitud de WeChat Mini Program.
El código anterior incluye el nombre de usuario y URI del avatar del usuario de WeChat Mini Program durante el inicio de sesión. Puedes elegir pasar estos dos parámetros por separado y luego pasarlos a Casdoor después de un inicio de sesión exitoso y obtener el token de acceso:
wx.getUserProfile({
desc: 'share your info to Casdoor',
success: (res) => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
console.log(app.globalData.accessToken)
wx.request({
url: `${CASDOOR_HOSTNAME}/api/update-user`, // Casdoor URL
method: "POST",
data: {
"owner": "test",
"name": "wechat-oGk3T5tIiMFo3SazCO75f0HEiE7Q",
"displayName": this.data.userInfo.nickName,
"avatar": this.data.userInfo.avatarUrl
},
header: {
"Authorization": "Bearer " + app.globalData.accessToken, // Bearer token
"content-type": "application/json"
},
success: (res) => {
console.log(res)
}
})
}
})
Además, puedes usar el token de acceso como un token portador para cualquier operación de Casdoor que requieras.
Actualmente, Casdoor no puede vincular cuentas existentes con usuarios de WeChat Mini Program. Después de que Casdoor recupera el OpenID de WeChat, creará un nuevo usuario si el ID no existe, o usará el usuario existente si existe.