Python中文
首页
教程
问答
标签
搜索
登录
注册
如何为AppEngin编写正确的登录处理程序
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我花了好几天时间在网上搜索,我画了一个空白-我也是python新手!我只想将RPX(janrain)集成到Appengine中-为脚本插入加载代码并返回openid令牌-这一切都很好-但除此之外,似乎没有人比实际创建一个有效的openid登录更进一步-为什么?我想没有会话管理?在</p> <p>下面是一个简单的类处理程序,它获取openid的令牌,然后进行获取以获取用户配置文件。使用RPX非常简单。在</p> <h2>从RPX获取响应的简单处理程序</h2> <pre><code>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') </code></pre> <p>现在,问题就在这里开始了——理想情况下,我们可以偷懒,直接把他们登录到谷歌账户——但他们没有办法让用户登录ie</p> <p>在用户登录名(电子邮件)</p> <p>所以这就放弃了使用谷歌账户的任何希望——公平地说,如果我们有开放的id——何必麻烦!在</p> <p>所以。。。在</p> <p>我需要的是我自己的用户数据存储—这很简单—以及一些识别用户是否登录的方法—会话?但在AppEngine,他们不支持会话。在</p> <p>我发现了一些类库,它们说它们处理这个问题,但是它们看起来都没有很好的文档,而且没有好的代码示例</p> <p>有人能帮忙吗?在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>GAE允许你访问数据库,对吗?生成一个安全令牌,并将其与RPX返回的用户URL一起存储在数据库中。将安全令牌设置为cookie,以便在每次请求时都获得它-在数据库中查找令牌,然后从那里执行其余操作。在</p> <p>虽然我很担心它的性能,但它对我来说效果很好。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
Django:。是不是“超级用户”字段不起作用
4 回答
Django:'DeleteQuery'对象没有属性'add'
10 回答
Django:'ModelForm'对象没有属性
6 回答
Django:'python manage.py runserver'返回'TypeError:'WindowsPath'类型的对象没有len()
10 回答
Django:'Python管理.pysyncdb'不创建我的架构表
4 回答
Django:'Python管理.py迁移“耗时数小时(和其他奇怪的行为)
2 回答
Django:'readonly'属性在我的ModelForm上不起作用
3 回答
Django:'RegisterEmployeeView'对象没有属性'object'
1 回答
Django:'str'对象没有属性'get'
10 回答
Django:'创建' 不能被指定为Order模型表单中的值,因为它是一个不可编辑的字段
1 回答
Django:“'QuerySet'类型的对象不是JSON可序列化的”
3 回答
Django:“'utf8'编解码器无法解码位置19983中的字节0xe9:无效的连续字节”,加载临时文件时
8 回答
Django:“<…>”需要有一个字段“id”的值,然后才能使用这个manytomy关系
2 回答
Django:“AnonymousUser”对象没有“get_full_name”属性
4 回答
Django:“ascii”编解码器无法解码位置1035中的字节0xc3:序号不在范围内(128)
4 回答
Django:“BaseTable”对象不支持索引
8 回答
Django:“collections.OrderedDict”对象不可调用
6 回答
Django:“Country”对象没有属性“all”
9 回答
Django:“Data”对象没有属性“save”
9 回答
Django:“datetime”类型的对象不是JSON serializab
6 回答