Skip to content

Commit e8cb8db

Browse files
authored
Correctly propagate auth errors for websockets (#288)
* Correctly propagate auth errors for websockets. * Add changeset.
1 parent a91254f commit e8cb8db

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

.changeset/witty-cougars-build.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@powersync/service-core': patch
3+
'@powersync/service-image': patch
4+
---
5+
6+
Fix websocket auth errors not correctly propagating the details, previously resulting in generic "[PSYNC_S2106] Authentication required" messages.

packages/service-core/src/routes/configure-rsocket.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,16 @@ export function configureRSocket(router: ReactiveSocketRouter<Context>, options:
3838
const extracted_token = getTokenFromHeader(token);
3939
if (extracted_token != null) {
4040
const { context, tokenError } = await generateContext(options.service_context, extracted_token);
41-
if (context?.token_payload == null) {
41+
if (tokenError != null) {
42+
throw tokenError;
43+
} else if (context?.token_payload == null) {
4244
throw new errors.AuthorizationError(ErrorCode.PSYNC_S2106, 'Authentication required');
4345
}
4446

4547
return {
4648
token,
4749
user_agent,
4850
...context,
49-
token_error: tokenError,
5051
service_context: service_context as RouterServiceContext,
5152
logger: connectionLogger
5253
};

packages/service-core/src/routes/router.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ export type Context = {
1717
service_context: RouterServiceContext;
1818

1919
token_payload?: JwtPayload;
20-
token_error?: ServiceError;
2120
/**
2221
* Only on websocket endpoints.
2322
*/

0 commit comments

Comments
 (0)