저는 ASCII/유니 코드 문제를 알고 있고 this과 같은 게시물을 보았습니다.flask_login : UnicodeDecodeError : 'ascii'코덱이 바이트를 디코드 할 수 없습니다.
GAE에 오류 메시지가 표시되지만 문제를 해결하기 위해 어떤 문제가 발생하는지 알 수 없습니다. flask_login의 cookie_digest에서 일어난 것 같습니다. 그런데 왜?
누군가 올바른 방향으로 나를 가리킬 수 있습니까?
Exception on /login [POST]
Traceback (most recent call last):
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask/app.py", line 1362, in full_dispatch_request
response = self.process_response(response)
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask/app.py", line 1564, in process_response
response = handler(response)
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask_login.py", line 344, in _update_remember_cookie
self._set_cookie(response)
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask_login.py", line 363, in _set_cookie
data = encode_cookie(str(session['user_id']))
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask_login.py", line 444, in encode_cookie
return u'{0}|{1}'.format(payload, _cookie_digest(payload))
File "/base/data/home/apps/s~service/1-0-1-0.369408465659150157/lib/flask_login.py", line 688, in _cookie_digest
key = key.encode('utf-8') # ensure bytes
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc9 in position 0: ordinal not in range(128)
편집 :
flask_login 파고 후, 그것은 비밀 키를 사용하여 일어나고있는 것 같다. 얼마나 이상한 !!! 나는 왜 우리의 애플 리케이션의 한 사용자에 대해서만 일어나고 있는지를보기 위해 그것 주위에 몇 가지 로깅을 넣어. 그리고 재현 가능한, 그녀가 로그인을 시도 할 때마다, 그녀는 예외를 얻습니다. 그러나 그녀 이외에, 나는 그것을 재현 할 수 없다.
def _cookie_digest(payload, key=None):
if key is None:
key = current_app.config['SECRET_KEY']
logging.info(u'key - cookie - {0}'.format(key))
if hasattr(key, 'encode'):
key = key.encode('utf-8') # ensure bytes
return hmac.new(key, payload.encode('utf-8'), sha1).hexdigest()
최신 flask-login ('pip install flask-login')을 설치했지만 여전히 동일한 문제가 발생합니다. 수정 프로그램이 아직 릴리스 되었습니까? – Houman
PyPi의 최신 Flask-Login 릴리스는 0.2.6이며 7/18에 릴리스되었습니다. 이 픽스는 8 월 초에 병합되었으므로 다음 릴리스를 기다리거나 git에서 설치해야합니다. – Miguel
오오 그렇습니다. git에서 설치해야만했습니다. 이제 작동합니다. 그런 벌레에 대한 수정이 아직 공개되지 않은 것은 참으로 유감스러운 일입니다. – Houman