biocore / biocore/microsetta-interface

JWT signature expired on get_authrocket_callback

Open
#195 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Jinja
Stars
1
Forks
17
PR merge metrics
No merged PRs in 30d

Description

Suspect a timed out token from Authrocket. We should catch and redirect the user to authrocket

```python
[2021-09-06 00:39:34 -0700] [13163] [ERROR] Exception on /authrocket_callback [GET]
Traceback (most recent call last):
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/app.py", line 2447, in wsgi_app
response = self.full_dispatch_request()
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/app.py", line 1952, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/app.py", line 1821, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/_compat.py", line 39, in reraise
raise value
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/app.py", line 1950, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/flask/app.py", line 1936, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/decorator.py", line 48, in wrapper
response = function(request)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/uri_parsing.py", line 144, in wrapper
response = function(request)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/validation.py", line 384, in wrapper
return function(request)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/produces.py", line 38, in wrapper
response = function(request)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/response.py", line 103, in wrapper
response = function(request)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/connexion/decorators/parameter.py", line 121, in wrapper
return function(**kwargs)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/microsetta_interface/implementation.py", line 520, in get_authrocket_callback
email, _ = _parse_jwt(token)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/microsetta_interface/implementation.py", line 365, in _parse_jwt
decoded = jwt.decode(token, PUB_KEY, algorithms=['RS256'], verify=True)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/jwt/api_jwt.py", line 104, in decode
self._validate_claims(payload, merged_options, **kwargs)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/jwt/api_jwt.py", line 134, in _validate_claims
self._validate_exp(payload, now, leeway)
File "/Users/api_user/miniconda3/envs/microsetta-interface/lib/python3.8/site-packages/jwt/api_jwt.py", line 175, in _validate_exp
raise ExpiredSignatureError('Signature has expired')
jwt.exceptions.ExpiredSignatureError: Signature has expired
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in implementation.py at get_authrocket_callback and follow its call to _parse_jwt. Inspect how an expired JWT is handled, then verify that an expired callback redirects the user to Authrocket instead of producing the shown exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
flask, python
Domain
authentication, backend
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.