Comments (2)
I just implemented this in a way i could use it for now. May be you want to pull it.
Usage example:
>>> import time
>>> import datetime
>>> import itsdangerous
>>> # calculate my expiry time
>>> expiry_time = datetime.datetime.utcnow() + datetime.timedelta(minutes=5)
>>> # generate code and include my expiry time
>>> serializer = itsdangerous.URLSafeTimedSerializer('password', salt='soup')
>>> code = serializer.dumps('sharingcode', moment=expiry_time)
>>> # generated code
>>> code
'InNoYXJpbmdjb2RlIg.B1h0cQ.essqAawsTQl9WbxlK4Kzb3c3CAE'
>>> # wait a minute
>>> time.sleep(60)
>>> # value for reference
>>> serializer.loads(code, max_age=0)
u'sharingcode'
>>> # wait another 4 minutes (+1 second)
>>> time.sleep(241)
>>> # try it again, define max_age=0
>>> serializer.loads(code, max_age=0)
Traceback (most recent call last):
File "<ipython-input-18-83b1842ba2eb>", line 1, in <module>
serializer.loads(code, max_age=0)
File "itsdangerous.py", line 667, in loads
.unsign(s, max_age, return_timestamp=True)
File "itsdangerous.py", line 470, in unsign
date_signed=self.timestamp_to_datetime(timestamp))
SignatureExpired: Signature age 1 > 0 seconds
from itsdangerous.
This is a good case for writing your own Serializer subclass.
from itsdangerous.
Related Issues (20)
- pgAdmin4 broken using itsdangerous > 2.0.0a1 HOT 1
- base64encode should be injected as a dependency in Signer class HOT 1
- Outdated pip link HOT 2
- Different lenght of tokens from 0.26 to 2.0.1? HOT 4
- ImportError: cannot import name 'json' from 'itsdangerous' HOT 5
- Incompatibility with Flask 1.1.1 (cannot import name 'json' from 'itsdangerous') HOT 4
- ImportError: cannot import name 'json' from 'itsdangerous' HOT 2
- Migration guide for deprecated JSONWebSignatureSerializer HOT 2
- Document that itsdangerous does not follow semver HOT 2
- ImportError: cannot import name 'TimedJSONWebSignatureSerializer' from 'itsdangerous' HOT 2
- catch overflow error on 32bit platforms
- Support async
- Issue with importing TimedJSONWebSignatureSerializer when updating db with Flask. HOT 1
- TimedJSONWebSignatureSerializer HOT 1
- Consider making `Serializer` generic in `t.AnyStr` for type checking to avoid overly ambiguous return types HOT 6
- Last character of serialized/signed data not robust HOT 1
- deprecate `__version__`
- use of `hashlib.sha1` causes issue in FIPS build
- Support digest_size when using blake2s or blake2b HOT 1
- serializer_kwargs are missing in load_payload function
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from itsdangerous.