示例#1
0
def login_openid_callback():
	# Convert a logged in GAE OpenID user to a BetaUser...
	user = gaeusers.get_current_user()
	if user:
		# First, check if there's already a BetaUser for this OpenID identity...
		bu = BetaUser.get_openid_user(user.federated_identity())
		if not bu:
			bu = BetaUser(sid=user.federated_identity(), service=BetaUser.SERVICE_OPENID, name=None, admin=False, lastlogin=datetime.datetime.now())
		bu.lastlogin = datetime.datetime.now()
		bu.put()

		# Store betauser key in our session cookie
		session['betauser'] = bu.key()
		session.permanent = True
	else:
		logging.warning('No OpenID user logged in.')

	# Should we redirect to a specific page?
	login_redirect_url = session.pop('login-redirect-url', None)
	if login_redirect_url:
		return redirect(login_redirect_url)
	# Redirect to front page
	else:
		return redirect('/')