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).
Schritt 1: Casdoor bereitstellen
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 ist wichtig zu beachten, dass der tag-Parameter obligatorisch ist, um Casdoor zu informieren, dass dies eine Anfrage vom WeChat Mini Program ist.
Der obige Code beinhaltet den Benutzernamen und die Avatar-URI des WeChat Mini Program-Benutzers während der Anmeldung. Sie können wählen, diese beiden Parameter separat zu übergeben und sie dann nach einer erfolgreichen Anmeldung und dem Erhalt des Zugriffstokens an Casdoor weiterzugeben:
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)
}
})
}
})
Zusätzlich können Sie das Zugriffstoken als Bearer-Token für jede Casdoor-Operation verwenden, die Sie benötigen.
Derzeit ist Casdoor nicht in der Lage, bestehende Konten an WeChat Mini Program-Benutzer zu binden. Nachdem Casdoor die OpenID von WeChat abgerufen hat, wird entweder ein neuer Benutzer erstellt, wenn die ID nicht existiert, oder der vorhandene Benutzer verwendet, wenn sie existiert.