我想在第三方网页上进行身份验证后将用户重定向到下一个URL。在重定向URL中,我希望它包含有关用户的一些信息,即会话ID。例如,当用户返回到我的页面时,我的重定向URL将为www.z.appspot.com/?session=x/
我想从新URL解析他们的某些详细信息,例如www.z.appspot.com/?access_code=x/?token=y&user_id=u
,但在尝试解析信息时,无法在URL中看到该标记为它需要它成为会话的一部分。我尝试过使用&
,但仍然没有快乐html appengine重定向URL
1
A
回答
0
它看起来像您要重定向到的服务不会正确地在继续URL中组成查询参数。解决这个问题的最简单的方法是(因为我在你原来的问题建议)的参数发送作为路径的一部分,而不是查询字符串 - 也就是说,使用形式的URL:
http://www.yourapp.com/continue/1234
凡1234
是用户的会话ID或用户ID。
1
您想要一个名为cgi的模块和一个名为FieldStorage的函数。这样做:
import cgi
url_parms = cgi.FieldStorage()
session = url_parms.getvalue("session","default")
您可以对任何URL参数执行此操作。将默认值替换为默认值(如空字符串)。
1
你的问题有点令人困惑,但是有没有其他服务不能重定向到的原因: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中的参数,请参阅Python的urlencode。
更新:
import urllib
encoded = urllib.urlencode({'app_id': 11,
'next': 'http://localhost:8086/?access_token=%s' % (access_token,)})
hunch_url = 'http://hunch.com/authorize/v1/?%s' % (encoded,)
然后通过hunch_url
到您的模板。
相关问题
- 1. Android-从url重定向到html
- 2. 从重定向的URL中删除.html
- 3. URL重定向
- 4. URL重定向
- 5. URL重定向
- 6. URL重定向
- 7. Url重定向
- 8. URL重定向
- 9. URL重写和重定向
- 10. 反向URL映射与AppEngine
- 11. URL重写和301重定向...重定向到原始URL
- 12. 移动URL重定向和桌面URL重定向
- 13. 修复与AppEngine上重定向
- 14. Javascript URL重定向
- 15. iis6 url重定向
- 16. 重定向Symfony URL
- 17. PHP重定向URL
- 18. php ---- url重定向
- 19. htaccess URL重定向
- 20. URL重定向Javascript
- 21. android url重定向
- 22. .htaccess URL重定向
- 23. .htaccess URL重定向
- 24. 重定向URL nodemailer
- 25. 重定向URL 301
- 26. 重定向URL(ASP.NET)
- 27. ASP.NET URL重定向
- 28. 重定向URL 3
- 29. Drupal URL重定向
- 30. Django URL重定向
我的用户最初使用4sq登录,然后创建一个会话,如果他们是一个新用户,我将它们重定向到使用'
'等返回的URL是如上所述,我已经使用通过Hunch登录的用户,但在使用这个新参数时没有。 CGI模块会更理想吗? – Stina 2011-03-26 21:03:57@Stina,你需要urlencode下一个网址及其参数。看到我更新的答案。 – 2011-03-26 21:35:55