首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pyamf flex google应用程序引擎

pyamf flex google应用程序引擎
EN

Stack Overflow用户
提问于 2010-04-24 18:43:30
回答 2查看 520关注 0票数 0

我刚刚在gae和pyAmf上创建了一个小的服务器amf (现在关闭了?)。嗯,我也用flex4做了一个客户端,一切都运行得很好。

现在我想添加一个身份验证方法,并且我知道在flex中有一个方法可以使用

代码语言:javascript
复制
RemoteObject.setCredentials(username:String, password:String, charset:String = null):void

现在我不明白如何在客户端和服务器端使用它,在哪里注册用户,我应该创建用户表吗?

有一本书叫“通过flex使用AMF的方法是什么?”

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-21 18:46:59

PyAMF的目标是为Python提供AMF编码/解码支持。为了帮助实现这一点并使这个库对人们有用,我们通过*Gateway类添加了对AMF0/3远程处理的支持。RemoteObject可以使用许多类型的“通道”来实现它的目标--超文本传输协议,RTMP,等等,其中PyAMF只支持超文本传输协议(以及轮询)。

HTTP上下文中的RemoteObject身份验证是通过会话cookie实现的。PyAMF支持许多流行的web框架(Twisted、Django、AppEngine、web2py、WSGI),每个框架都为使用会话提供了不同的接口。我们很早就决定,这将是太多的支持,无论如何,它确实超出了PyAMF要实现的范围。

由于PyAMF的范围很窄,它现在已经完成了相当多的工作(就像任何软件项目一样)。我们还有一些里程碑要实现,更好的性能和对py3k的支持是主要目标。

现在来听一些好消息。AmFast已经支持Flex (包括RemoteObject),包括你想要的任何风格,包括(据我所知)开箱即用的身份验证。它也支持AppEngine,但使用PyAMF进行AMF编码/解码。

Plasma DS是一个新的羽翼未丰的项目,旨在为Python提供完整的实现,包括LiveCycle Data Services的所有(合理)功能(想想支持RTMP的BlazeDS以及数据同步和冲突解决)。这两个项目的作者都致力于这个新的项目(只要我们找到时间:-),但要注意这个项目还处于起步阶段-还没有发布。

说了这么多,回到你的问题上:)

我建议你看看AmFast,看看它是否能满足你的需求。如果不是,那么我将通过创建一个login服务方法并相应地更新会话cookie来自己实现身份验证方法。对于HTTP session支持,我建议使用AppEngine来查看gae-sessions的session支持(假设你没有使用Django作为你的webapp的一部分--你没有指定)

授权码可以是这样简单的东西:

代码语言:javascript
复制
from google.appengine.ext import db
from gaesessions import get_current_session

class User(db.Model):
    username = db.StringProperty()
    password = db.StringProperty()

def login(username, password):
    q = User.all()

    q.filter('username =', username)
    q.filter('password =', password)

    user = q.get()

    if not user:
        return False

    session = get_current_session()

    session['user'] = str(user.key())

    return True

免责声明:不要在生产环境中使用此代码,它有很多安全漏洞,仅供参考。

当然,Google提供了自己的身份验证机制,您也可以使用它们(取决于您是否想要锁定)。

票数 0
EN

Stack Overflow用户

发布于 2010-04-26 08:17:39

似乎RemoteObject.setCredentials已经从pyamf 0.51版本中删除了。RemoteObject Authentication width setCredentials did not work

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2704142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档