我花了几天的时间搜索网页,然后画一个空白-im新的Python!我只是想将RPX(janrain)整合到Appengine中 - 脚本插入和openid标记的返回代码 - 这些都很棒 - 但除此之外,没有人会进一步考虑它,因为在实际创建openid登录工作 - 为什么?我假设没有会话管理?RPX,OpenID - 如何为AppEngine写一个合适的SignIn处理程序
这是一个简单的类处理程序,它获取开放标识的TOKEN,然后进行抓取以抓取用户配置文件。所有非常简单的使用RPX。
简单的处理程序来获取RPX
class RPXHandler(webapp.RequestHandler):
def get(self):
token = self.request.get('token')
url = 'https://rpxnow.com/api/v2/auth_info'
args = {
'format': 'json',
'apiKey': '#YOUR KEY#',
'token': token
}
r = urlfetch.fetch(url=url,
payload=urllib.urlencode(args),
method=urlfetch.POST,
headers={'Content-Type':'application/x-www-form-urlencoded'}
)
json = simplejson.loads(r.content)
logging.info(json)
if json['stat'] == 'ok':
unique_identifier = json['profile']['identifier']
nickname = json['profile']['preferredUsername']
email = json['profile']['email']
# log the user in using the unique_identifier
# this should your cookies or session you already have implemented
self.redirect('static/loggedin.html')
else:
self.redirect('static/error.html')
现在#这里的响应是问题开始的地方 - 理想,我们可以偷懒,只要登录他们到谷歌帐户 - 但他们没有登录用户的方法在;
user.login(电子邮件)
,这样放弃使用谷歌账户的希望 - 和公正,如果我们有开放的ID - 何必呢!
SO ...
我需要的是我自己的用户数据存储 - 这就是简单 - 确定如果用户登录的一些手段 - 会话?但在AppEngine中,它们不支持会话。
我已经找到了几类libarys其说,他们处理这个,但是这一切看起来很糟糕记录,并没有良好的代码示例
谁能帮助?
你不应该使用所有的帽子 - 即使是一个标题 - 它看起来像你是可爱的。 – 2010-01-27 18:10:46