Changeset 2:4c6c8835fc5c in OKFNAnnotator (for Zope)
- Timestamp:
- Mar 23, 2012, 4:50:06 PM (13 years ago)
- Branch:
- default
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
AuthTokenGenerator.py
r0 r2 3 3 from OFS.PropertyManager import PropertyManager 4 4 5 import logging 5 6 import datetime 6 import hashlib 7 import json 7 import jwt 8 8 9 9 … … 25 25 26 26 meta_type = 'AuthTokenGenerator' 27 _properties =({'id':'consumer_key', 'type': 'string', 'mode': 'w'},27 _properties = ({'id':'consumer_key', 'type': 'string', 'mode': 'w'}, 28 28 {'id':'consumer_secret', 'type': 'string', 'mode': 'w'}, 29 29 ) … … 32 32 33 33 # Only change this if you're sure you know what you're doing 34 consumerTtl = 8640034 tokenTtl = 86400 35 35 36 36 def __init__(self, id, consumerKey=None, consumerSecret=None): 37 37 """init document viewer""" 38 self.id =id38 self.id = id 39 39 self.consumer_key = consumerKey 40 40 self.consumer_secret = consumerSecret … … 44 44 if self._token_allowed(): 45 45 token = self._generate_token(user) 46 self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json")46 # set CORS headers 47 47 origin = self.REQUEST.getHeader("Origin", None) 48 48 if origin is not None: … … 52 52 53 53 self.REQUEST.RESPONSE.setHeader("Access-Control-Allow-Credentials", "true") 54 json.dump(token, self.REQUEST.RESPONSE) 54 logging.debug("token=%s"%token) 55 self.REQUEST.RESPONSE.setHeader("Content-Type", "text/plain") 56 return token 57 # send as JSON 58 #self.REQUEST.RESPONSE.setHeader("Content-Type", "application/json") 59 #json.dump(token, self.REQUEST.RESPONSE) 55 60 else: 56 61 self.REQUEST.RESPONSE.setStatus('Forbidden') … … 63 68 def _generate_token(self, user_id): 64 69 #return JSON-token 65 issue_time = datetime.datetime.now(UTC).isoformat() 66 token = hashlib.sha256(self.consumer_secret + user_id + issue_time).hexdigest() 67 68 return dict( 69 consumerKey=self.consumer_key, 70 authToken=token, 71 authTokenIssueTime=issue_time, 72 authTokenTTL=self.consumerTtl, 73 userId=user_id 74 ) 70 issue_time = datetime.datetime.now(UTC).replace(microsecond=0) 71 72 return jwt.encode({ 73 'consumerKey': self.consumer_key, 74 'userId': user_id, 75 'issuedAt': issue_time.isoformat(), 76 'ttl': self.tokenTtl 77 }, self.consumer_secret) 78 75 79 76 80 def manage_addAuthTokenGeneratorForm(self): -
version.txt
r1 r2 1 0. 2a1 0.3
Note: See TracChangeset
for help on using the changeset viewer.