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).
Étape 1 : Déployer 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
}
})
}
})
Il est important de noter que le paramètre tag est obligatoire pour informer Casdoor qu'il s'agit d'une demande de WeChat Mini Program.
Le code ci-dessus inclut le nom d'utilisateur et l'URI de l'avatar de l'utilisateur WeChat Mini Program lors de la connexion. Vous pouvez choisir de passer ces deux paramètres séparément, puis de les transmettre à Casdoor après une connexion réussie et l'obtention du jeton d'accès :
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)
}
})
}
})
De plus, vous pouvez utiliser le jeton d'accès comme un jeton porteur pour toute opération Casdoor dont vous avez besoin.
Actuellement, Casdoor est incapable de lier des comptes existants aux utilisateurs de WeChat Mini Program. Après que Casdoor ait récupéré l'OpenID de WeChat, il créera soit un nouvel utilisateur si l'ID n'existe pas, soit utilisera l'utilisateur existant s'il existe.