28.09.2009 12:56

  1. Elias

    0 ↑
    0 ↓
    Подскажите пожалуйста, когда вы использовали библиотеку python-openid у вас были проблемы с кодировками при пересылки данных Sreg или ещё в каких местах? Отсылал данные и в юникод и в утф, он пишет ошибки в разных местах. Это все происходит, когда создается консумер. Конечно я могу поправить код в библиотеки, но может я где-то допустил ошибку и библиотека тут не при чем? Эту ошибку можно посмотреть здесь, для этого отошлите ему русский никнейм.
  2. Насколько я помню, это бага в самом тестовом консумере, она случается при попытке вывести полученное имя. Соответственно, если вы делаете консумер сами, то можете этот процесс контролировать.

    Там ещё тонкость есть. В каких-то последних версиях (кажется между 2.0.x и 2.1.x) изменилось то, в каком виде consumer.complete принимает строчки в запросе. Раньше были байтовые строки, теперь unicode. Соответственно, для версии раньше 2.1 надо делать дополнительную конвертацию из unicode в байтовые строки:

    query = dict((k, smart_str(v)) for k, v in request.GET.items())
    consumer.complete(query, ...)
    

    Но в новых версиях уже не надо так делать, достаточно request.GET передавать прямо.

  3. Elias

    0 ↑
    0 ↓
    Большое спасибо! Убрал нормализацию и все заработало :)

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.