I have custom authAdater
auth: {
sms: {
module: SMSAuth,
enabled: true,
clientId: "clientId",
clientSecret: "clientSecret",
},
qq: {
module: QQAuth,
enabled: true,
clientId: "clientId",
clientSecret: "clientSecret",
enableInsecureAuth: true
},
export class QQAuth extends BaseAuthCodeAdapter {
constructor() {
super("qq");
}
async getUserFromAccessToken(access_token, authData) {
return authData.id
}
async getAccessTokenFromCode(authData) {
return "access_token"
}
}
export default QQAuth;
module.exports = QQAuth
but when i use
await user.linkWith("sms", {
authData: {
id: mobileNum
}
}, {useMasterKey: true});
the user authData is
{
"qq": {
"id": "1BAA6C00C9CD43AA95BB1F30A0EA01B8"
},
"qq_unionid": {
"id": "UID_B7882A925E67EAE303A8665ED30EC2A8"
},
"sms": {
"id": "+86177xxxxxxxx"
}
}
and error is
Parse error: ParseError: qq auth is invalid for this user.
[TS] at QqAdapter.beforeFind (D:\Test\parse\node_modules\parse-server\src\Adapters\Auth\BaseCodeAuthAdapter.js:34:15)
[TS] at map (D:\Test\parse\node_modules\parse-server\src\Auth.js:429:23)
[TS] at Array.map (<anonymous>)
[TS] at Object.findUsersWithAuthData (D:\Test\parse\node_modules\parse-server\src\Auth.js:424:15)
[TS] at RestWrite.handleAuthData (D:\Test\parse\node_modules\parse-server\src\RestWrite.js:541:24)
[TS] at RestWrite.validateAuthData (D:\Test\parse\node_modules\parse-server\src\RestWrite.js:484:19)
[TS] at D:\Test\parse\node_modules\parse-server\src\RestWrite.js:112:19
[TS] at processTicksAndRejections (node:internal/process/task_queues:95:5) {
[TS] code: 101
[TS] }
very strange is at “QqAdapter.beforeFind”, i have custom authAdapter, but why the error is QqAdapter ?
server version:
"parse-server": "^8.1.0",