Skip to content

Commit

Permalink
openid project creatoin works now.
Browse files Browse the repository at this point in the history
  • Loading branch information
bradfitz committed Mar 16, 2010
1 parent 1ab00b5 commit f65488b
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 11 deletions.
14 changes: 8 additions & 6 deletions consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ class Session(db.Expando):
"""An in-progress OpenID login."""
claimed_id = db.StringProperty()
server_url = db.LinkProperty()
store_and_display = db.BooleanProperty()


class Login(db.Model):
Expand Down Expand Up @@ -295,13 +294,13 @@ def get(self):
self.render()


class LoginHandler(Handler):
class StartHandler(Handler):
"""Handles a POST response to the OpenID login form."""

def post(self):
"""Handles login requests."""
logging.info(self.args_to_dict())
openid_url = self.request.get('openid')
openid_url = self.request.get('openid_url')
if not openid_url:
self.report_error('Please enter an OpenID URL.')
return
Expand All @@ -321,7 +320,6 @@ def post(self):

self.session.claimed_id = auth_request.endpoint.claimed_id
self.session.server_url = auth_request.endpoint.server_url
self.session.store_and_display = self.request.get('display', 'no') != 'no'
self.store_session()

sreg_request = sreg.SRegRequest(optional=['nickname', 'fullname', 'email'])
Expand Down Expand Up @@ -385,13 +383,17 @@ def get(self):
session=self.session.key())
login.put()

self.render(locals())
self.response.headers.add_header('Set-Cookie',
'session=%s; path=/' % session_id)

# TODO(bradfitz: redirect to proper 'next' URL
self.redirect('/')


# Map URLs to our RequestHandler subclasses above
_URLS = [
('/s/openid', FrontPage),
('/s/startopenid', LoginHandler),
('/s/startopenid', StartHandler),
('/s/finish', FinishHandler),
]

Expand Down
2 changes: 1 addition & 1 deletion login.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

<p>Choose your authentication mechanism:<p>

<form method='/s/startopenid' method='POST'>
<form action='/s/startopenid' method='POST'>
<div style='margin: 2em 0 2em 0'>
<img src='/static/openid-logo2.png' width='112' height='36' alt='OpenID' align='absmiddle' /><br/>
<input type='text' name='openid_url' id='openid_url' size='40' />
Expand Down
10 changes: 7 additions & 3 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
from google.appengine.ext.webapp import template
from google.appengine.ext.webapp import util

import consumer
import models


Expand All @@ -36,9 +37,12 @@ def GetCurrentUser(request):
session_id = request.cookies.get('session', '')
if not session_id:
return None
return models.User(openid_user=session_id) # hack


login = consumer.Login.get_by_key_name(session_id)
if not login:
return None
return models.User(openid_user=login.claimed_id)


class IndexHandler(webapp.RequestHandler):

def get(self):
Expand Down
2 changes: 1 addition & 1 deletion models.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def sha1_key(self):
if self.google_user:
return sha.sha(self.google_user.email() + SALT).hexdigest()[0:8]
if self.openid_user:
return sha.sha(self.openid_user() + SALT).hexdigest()[0:8]
return sha.sha(self.openid_user + SALT).hexdigest()[0:8]
return Exception("unknown user type")

def GetOrCreateFromDatastore(self):
Expand Down

0 comments on commit f65488b

Please sign in to comment.