Pyamf Flex Google App Engine - PullRequest
       16

Pyamf Flex Google App Engine

0 голосов
/ 24 апреля 2010

Я только что сделал небольшой сервер amf на gae и pyAmf (сейчас нет?). Ну, я также сделал клиента во Flex 4, и все работает хорошо.

Теперь я хотел бы добавить метод аутентификации, и я знаю, что в flex есть метод для аутентификации с использованием

RemoteObject.setCredentials(username:String, password:String, charset:String = null):void

Теперь я не понимаю, как это использовать на стороне клиента и на стороне сервера, где регистрировать пользователя, я должен создавать пользовательские таблицы?

есть книга, как использовать AMF с flex?

спасибо

Ответы [ 2 ]

0 голосов
/ 21 мая 2010

Целью PyAMF является обеспечение поддержки en / decoding AMF для Python. Чтобы помочь в этом и сделать библиотеку полезной для людей, мы добавили поддержку удаленного взаимодействия AMF0 / 3 через классы *Gateway. RemoteObject может использовать многие типы «каналов» для достижения своих целей - HTTP, RTMP и т. Д., Из которых PyAMF поддерживает только HTTP (и опрос при этом).

Аутентификация RemoteObject в контексте HTTP достигается с помощью файлов cookie сеанса. PyAMF поддерживает множество популярных веб-платформ (Twisted, Django, AppEngine, web2py, WSGI), каждая из которых предоставляет различные интерфейсы для использования сессий. Мы решили на раннем этапе, что это будет слишком много для поддержки и что в любом случае это действительно выходит за рамки того, для чего предназначен PyAMF.

PyAMF в настоящее время практически завершен (как и любой программный проект) благодаря своей узкой области применения. У нас есть еще несколько вех, чтобы достичь, главная цель - повышение производительности и поддержка py3k.

Теперь о хороших новостях. AmFast уже поддерживает Flex Messaging (включая RemoteObject) практически в любом вкусе, включая (насколько я понимаю) аутентификацию "из коробки". Он также поддерживает AppEngine, но использует PyAMF для кодирования / декодирования AMF.

Plasma DS - это новый неоперившийся проект, нацеленный на обеспечение полной реализации Flex Messaging для Python, включая все (разумные) функции LiveCycle Data Services (вспомните BlazeDS с Поддержка RTMP, синхронизация данных и разрешение конфликтов. Авторы обоих проектов преданы этому новому начинанию (всякий раз, когда мы находим время :-)), но имейте в виду, что проект находится в зачаточном состоянии - пока нет релизов.

После всего сказанного вернемся к вашему вопросу:)

Я бы посоветовал взглянуть на AmFast и посмотреть, удовлетворяет ли это вашим потребностям. Если нет, то я бы сам реализовал методы аутентификации, создав сервисный метод login и соответственно обновив файл cookie сеанса. Для поддержки HTTP-сессий я бы посоветовал посмотреть gae-session для поддержки сессий с AppEngine (при условии, что вы не используете Django как часть вашего веб-приложения - вы не указываете)

Код авторизации может быть таким простым:

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 голосов
/ 26 апреля 2010

Похоже, что RemoteObject.setCredentials был удален из версии pyamf 0.51. RemoteObject Authentication width setCredentials не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...