def verify_token(self, uid, query_args):
code = query_args.get('code', None)
state = query_args.get('state', None)
user = self.ldaptools.getuser(uid)
if code and state:
state_key = self.config["statekey"]
if state_key == state:
r = self.get_reddit_client(self.config["redirect_base"] + url_for('reddit_loop'))
access_info = r.get_access_information(code)
auth_reddit = r.get_me()
if 'redditAccount' in user.objectClass:
if hasattr(user, 'redditName') and hasattr(user, 'redditToken'):
from ldap import MOD_REPLACE
self.ldaptools.updateattrs(uid, MOD_REPLACE, {
'redditName': auth_reddit.name,
'redditToken': access_info['access_token']
})
else:
# Something went horribly wrong.
return False
else:
from ldap import MOD_ADD
self.ldaptools.updateattrs(uid, MOD_ADD, {
'objectClass': 'redditAccount',
'redditName': auth_reddit.name,
'redditToken': access_info['access_token']
})
return True
return False
评论列表
文章目录