biocore / biocore/microsetta-interface
JWT signature expired on get_authrocket_callback
- 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