mirror of
https://github.com/wkulhanek/bonob.git
synced 2025-12-21 17:33:29 +01:00
Fix token store
This commit is contained in:
22
src/smapi.ts
22
src/smapi.ts
@@ -423,17 +423,31 @@ function bindSmapiSoapServiceToExpress(
|
||||
E.chain((credentials) => {
|
||||
// Check if token/key is associated with a user
|
||||
const smapiToken = sonosSoap.getCredentialsForToken(credentials.loginToken.token);
|
||||
if (!smapiToken || smapiToken.key !== credentials.loginToken.key) {
|
||||
return E.left(new InvalidTokenError("Token not associated with any user"));
|
||||
if (!smapiToken) {
|
||||
return E.left(new InvalidTokenError("Token not found"));
|
||||
}
|
||||
|
||||
// If credentials don't have a key, use the stored one
|
||||
const effectiveKey = credentials.loginToken.key || smapiToken.key;
|
||||
|
||||
if (smapiToken.key !== effectiveKey) {
|
||||
return E.left(new InvalidTokenError("Token key mismatch"));
|
||||
}
|
||||
|
||||
return pipe(
|
||||
smapiAuthTokens.verify({
|
||||
token: credentials.loginToken.token,
|
||||
key: credentials.loginToken.key,
|
||||
key: effectiveKey,
|
||||
}),
|
||||
E.map((serviceToken) => ({
|
||||
serviceToken,
|
||||
credentials,
|
||||
credentials: {
|
||||
...credentials,
|
||||
loginToken: {
|
||||
...credentials.loginToken,
|
||||
key: effectiveKey,
|
||||
},
|
||||
},
|
||||
}))
|
||||
);
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user