Я потратил несколько дней на поиск в Интернете, и я рисую бланк - я тоже новичок в python! Я просто хочу интегрировать RPX (janrain) в Appengine - загружать код для вставки скриптов и возвращать токен openid - это все здорово - но кроме этого никто, кажется, не продвигается дальше, как при создании openid Логин, который работает - почему? я предполагаю, что нет управления сессиями?
Вот простой обработчик класса, который получает 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')
Теперь # здесь начинается проблема - в идеале мы можем быть ленивыми и просто войти в них в учетные записи Google - но это не метод входа пользователя в систему, т. Е.
user.login (электронная почта)
так что отпадает всякая надежда на использование учетных записей Google - и если честно, если у нас есть открытый идентификатор - зачем?
SO ...
Что мне нужно, так это мое собственное хранилище данных пользователя - это просто - и некоторые средства определения, вошел ли пользователь в систему - сеансы? Но в AppEngine их нет для поддержки сессий.
Я нашел несколько библиотек классов, в которых говорится, что они имеют дело с этим, но все это выглядит плохо документировано и без хороших примеров кода
Может кто-нибудь помочь?