이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 57220|회답: 3

[출처] c# 위챗에서 전송된 토큰 검증

[링크 복사]
게시됨 2016. 8. 23. 오후 3:49:49 | | | |


이 토큰 검증을 위해 위챗 관계자들로부터 관련 문서를 전혀 찾지 못했습니다.

문서를 찾지 못했는데, 위챗 토큰 인증이 어떻게 인증되는지 어떻게 알 수 있나요???

온라인에서만 검색할 수 있으며, 검증 절차는 다음과 같습니다:

URL에 대응하는 처리 방식에서 전달된 매개변수를 얻고 암호화/검증을 수행합니다
절차는 다음과 같습니다:
1. 토큰, 타임스탬프, 논스 세 가지 매개변수를 사전 순서대로 정렬합니다
2. 세 가지 매개변수 문자열을 하나의 문자열로 스티치하여 SHA1 암호화를 수행합니다
3. 개발자가 얻은 암호화된 문자열을 서명과 비교하여 위챗 요청의 출처를 확인할 수 있습니다.


그리고 이 점을 알고 있으니, 위챗이 요청한 URL 연결을 직접 녹음해서 제 디버깅을 용이하게 했습니다.

마지막으로, 다음과 같은 암호화 방법을 작성했습니다:



여기서는 키를 정렬하는 값이 아니라 직접 정렬하는 방법을 사용합니다. 처음에 이 실수를 했네요,

보통 키 정렬이 이루어지고, 키와 값이 함께 암호화되거나, 값만 암호화되기 때문입니다...


마지막으로, 암호화된 문자열과 서명을 비교하고, 맞다면 위챗 서버에서 보내는 echostr 파라미터를 직접 반환하세요.

귀찮으면 그냥 echostr 파라미터 값을 반환하세요.




이전의:c# 알리바바는 SMS 데모 소스 코드 다운로드 전송보다 더 좋습니다
다음:XML 디직렬화 XML 문서(1, 2)에 오류가 있습니다.
 집주인| 게시됨 2016. 8. 23. 오후 3:53:51 |
 집주인| 게시됨 2016. 8. 24. 오후 1:06:07 |
http://mp.weixin.qq.com/wiki/4/2ccadaef44fe1e4b0322355c2312bfa8.html

문서를 찾았습니다

개발자가 처음 인증 신청서를 제출하면, 위챗 서버는 네 가지 매개변수(서명, 타임스탬프, 논스, 에코스트르)를 포함한 채워진 URL에 GET 요청을 보내고, 개발자는 서명(즉, 서명)을 검증하여 메시지의 진위를 판단합니다.
그 이후로는 개발자가 사용자 메시지를 받을 때마다 위챗은 개발자가 설정한 URL에 접근하기 위해 서명, 타임스탬프, 집합체 등 처음 세 가지 매개변수를 가져와, 서명의 유효성을 통해 메시지의 진위를 판단합니다. 검증 방법은 검증 신청서의 첫 제출과 동일합니다.
매개 변수묘사
서명WeChat 암호 서명, 서명은 개발자가 작성한 토큰 매개변수와 요청서의 타임스탬프 및 논스 매개변수를 결합합니다.
타임스탬프타임스탬프
노운스난수
에코스트르임의 문자열
개발자는 서명을 확인하여 요청을 검증합니다(검증 방법은 아래에 나와 있습니다). GET 요청이 위챗 서버에서 온 것임을 확인하면, echostr 매개변수 내용을 있는 그대로 반환해 주시고, 그러면 접근이 발효되어 성공적인 개발자가 되며, 그렇지 않으면 접근이 실패합니다.
암호화/검증 과정은 다음과 같습니다:1. 토큰, 타임스탬프, 논스의 세 매개변수를 사전 순서로 정렬합니다2. SHA1 암호화를 위해 세 개의 매개변수 문자열을 하나의 문자열로 연결하세요. 개발자가 얻은 암호화된 문자열을 서명과 비교하여 위챗 요청의 출처를 확인할 수 있습니다
게시됨 2021. 10. 7. 오후 8:56:07 |
  이 대기업들은 공개 문서가 친절하지 않습니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com