clerk-sdk-ruby
clerk-sdk-ruby copied to clipboard
Error parsing claims when organizations are enabled
I have the following setup:
- Nextjs app using apollo client to make API requests with an Authorization header with the JWT
- Rails backend API handling requests
It's working fine, however when I have organizations enabled for my account I'm getting the following error/stack trace:
NoMethodError (undefined method `split' for nil):
clerk-sdk-ruby (4.1.0) lib/clerk/sdk.rb:66:in `compute_org_permissions_from_v2_token'
clerk-sdk-ruby (4.1.0) lib/clerk/sdk.rb:54:in `verify_token'
clerk-sdk-ruby (4.1.0) lib/clerk/authenticate_request.rb:223:in `verify_token'
clerk-sdk-ruby (4.1.0) lib/clerk/authenticate_request.rb:42:in `resolve_header_token'
clerk-sdk-ruby (4.1.0) lib/clerk/authenticate_request.rb:27:in `resolve'
clerk-sdk-ruby (4.1.0) lib/clerk/rack_middleware.rb:39:in `call'
rack (3.1.14) lib/rack/etag.rb:29:in `call'
rack (3.1.14) lib/rack/conditional_get.rb:43:in `call'
rack (3.1.14) lib/rack/head.rb:15:in `call'
activerecord (8.0.2) lib/active_record/migration.rb:671:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/callbacks.rb:31:in `block in call'
activesupport (8.0.2) lib/active_support/callbacks.rb:100:in `run_callbacks'
actionpack (8.0.2) lib/action_dispatch/middleware/callbacks.rb:30:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/executor.rb:16:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/actionable_exceptions.rb:18:in `call'
sentry-rails (5.24.0) lib/sentry/rails/rescued_exception_interceptor.rb:11:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/debug_exceptions.rb:31:in `call'
sentry-ruby (5.24.0) lib/sentry/rack/capture_exceptions.rb:15:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/show_exceptions.rb:32:in `call'
railties (8.0.2) lib/rails/rack/logger.rb:41:in `call_app'
railties (8.0.2) lib/rails/rack/logger.rb:29:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/remote_ip.rb:96:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/request_id.rb:34:in `call'
rack (3.1.14) lib/rack/runtime.rb:24:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/server_timing.rb:61:in `block in call'
actionpack (8.0.2) lib/action_dispatch/middleware/server_timing.rb:26:in `collect_events'
actionpack (8.0.2) lib/action_dispatch/middleware/server_timing.rb:60:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/executor.rb:16:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/static.rb:27:in `call'
rack (3.1.14) lib/rack/sendfile.rb:114:in `call'
actionpack (8.0.2) lib/action_dispatch/middleware/host_authorization.rb:143:in `call'
rack-cors (3.0.0) lib/rack/cors.rb:102:in `call'
railties (8.0.2) lib/rails/engine.rb:535:in `call'
puma (6.6.0) lib/puma/configuration.rb:279:in `call'
puma (6.6.0) lib/puma/request.rb:99:in `block in handle_request'
puma (6.6.0) lib/puma/thread_pool.rb:390:in `with_force_shutdown'
puma (6.6.0) lib/puma/request.rb:98:in `handle_request'
puma (6.6.0) lib/puma/server.rb:472:in `process_client'
puma (6.6.0) lib/puma/server.rb:254:in `block in run'
puma (6.6.0) lib/puma/thread_pool.rb:167:in `block in spawn_thread'
It seems that it's expecting a different structure for the JWT claims than actually exists