Possible duplicate QuestionQt는 QUrlQuery 다음과 같이 Qbytearray 토큰
나는 재설정 링크를 생성하고이/토큰을 클라이언트로 전송됩니다 것을 추출한다.
http://localhost:8080/reset/staff&token=pc%22%EF%BF%BD%C6%9Fsktx%EF%BF%BD!%06t%5C%0B
내가 토큰 QByteArray 필요 저장된 해시에 대한 재설정 요청을 인증하기 :
는QByteArray token;
token.resize(crypto_pwhash_SALTBYTES);
randombytes_buf(token.data(), crypto_pwhash_SALTBYTES);
QUrlQuery token_url("http://localhost:8080/reset/staff");
token_url.addQueryItem("token", token);
token_url.query(QUrl::FullyEncoded).toUtf8();
이 올바른 출력을 생성 나타납니다.
QByteArray path = request.getPath();
qDebug() << path;
QUrlQuery token_url(path);
QString token(token_url.queryItemValue("token"));
qDebug() << token;
qDebug() << QUrl::fromPercentEncoding(path);
파이어 폭스에서 붙여 넣기 URL을 포함하여 출력 내가 아마 강아지 서명 숯불의 Converstion을하고있어 이해
"/reset/staff&token=pc\"\xEF\xBF\xBD\xC6\x9Fsktx\xEF\xBF\xBD!\x06t\\\x0B"
"pc\"�Ɵsktx�!%06t\\%0B"
"/reset/staff&token=pc\"�Ɵsktx�!\u0006t\\\u000B"
횡설수설이다.
QUrlQuery 안팎에 QBytearrays를 전달하는 세련된 방법은 무엇입니까?
저는 일부 프로그래머가 자신의 URL 파서를 작성하는 것을 보았지만 과도한 것으로 보입니다.