html appengine redirect URL - PullRequest
       7

html appengine redirect URL

1 голос
/ 26 марта 2011

Я хочу перенаправить пользователя на следующий URL после аутентификации на сторонней веб-странице. В URL перенаправления я хочу, чтобы он содержал некоторую информацию о пользователе, т.е. идентификатор сессии. Например, мой URL перенаправления будет www.z.appspot.com/?session=x/, когда пользователь вернется на мою страницу, я хочу проанализировать некоторые из его данных из нового URL, например www.z.appspot.com/?access_code=x/?token=y&user_id=u, но при попытке проанализировать информацию он не может увидеть токен в URL, как он принимает участие в сессии. Я пытался использовать &, но все равно не радости

Ответы [ 3 ]

1 голос
/ 26 марта 2011

Ваш вопрос немного сбивает с толку, но есть ли причина, по которой ваш другой сервис не может перенаправить на: www.z.appspot.com/?access_code=x/&token=y&user_id=u?Это должно быть правильно проанализировано:

import urlparse
import cgi

url = "www.z.appspot.com/?access_code=x/&token=y&user_id=u"
query = urlparse.urlparse(url).query
print cgi.parse_qs(query)
# output: {'access_code': ['x/'], 'token': ['y'], 'user_id': ['u']}

Если вы не можете изменить формат URL, вы можете сделать что-то вроде:

import urlparse
import cgi

url = "www.z.appspot.com/?access_code=x/?token=y&user_id=u"
query = urlparse.urlparse(url).query
access_code, query = query.split('?', 1)
access_code = access_code.split('=', 1)[1]
print access_code
# output: 'x/'
print cgi.parse_qs(query)
# output: {'token': ['y'], 'user_id': ['u']}

Или, если вы просто пытаетесьспросите, как встроить параметры в URL-адрес, на который они будут перенаправлены, см. urlencode .

* 1012 Python * Обновление :

import urllib
encoded = urllib.urlencode({'app_id': 11,
                            'next': 'http://localhost:8086/?access_tok­en=%s' % (access_token,)})
hunch_url = 'http://hunch.com/authorize/v1/?%s' % (encoded,)

Затем передать1017 * к вашему шаблону.

1 голос
/ 26 марта 2011

Вам нужен модуль с именем cgi и функция с именем FieldStorage.Сделайте это так:

import cgi

url_parms = cgi.FieldStorage()
session = url_parms.getvalue("session","default")

Вы можете сделать это для любого из параметров URL.Замените «default» на любое значение по умолчанию (например, пустую строку).

0 голосов
/ 28 марта 2011

Похоже, что служба, на которую вы перенаправляете, неправильно формирует параметры запроса в URL-адресе продолжения. Проще всего было бы (как я предложил в исходном вопросе) отправить параметр как часть пути, а не строку запроса, то есть использовать URL-адреса в виде:

http://www.yourapp.com/continue/1234

Где 1234 - идентификатор сеанса пользователя или идентификатор пользователя.

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