>  기사  >  백엔드 개발  >  PHP WeChat 로그인 41001 오류 문제를 해결하는 방법

PHP WeChat 로그인 41001 오류 문제를 해결하는 방법

藏色散人
藏色散人원래의
2022-01-11 09:10:004392검색

php WeChat 로그인 41001 오류에 대한 해결 방법: 1. 로그를 확인합니다. 2. 스트립슬래시를 통해 백슬래시를 제거합니다. 3. json_decode를 통해 디코딩합니다.

PHP WeChat 로그인 41001 오류 문제를 해결하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

php WeChat 로그인 41001 오류 문제를 해결하는 방법은 무엇입니까?

암호화된 사용자 데이터를 해독하기 위한 미니 프로그램 로그인Data -41001: 인코딩AesKey는 불법입니다.

미니 프로그램 WeChat 인증 로그인을 할 때 겪게 되는 함정이 마침내 해결되었습니다

이제 문제 해결을 위한 몇 가지 아이디어를 공유하고 싶습니다.

질문:

WeChat 미니 프로그램에 로그인 권한을 부여하려면 먼저 코드를 가져온 다음 session_key 및 open_id를 가져온 다음 암호화된 데이터를 가져온 다음 서버로 보내 암호를 해독하고 사용자 정보를 가져옵니다. 때로는 성공하고 때로는 -41001을 반환합니다. 오류 및 관찰 로그에 session_key가 획득된 것으로 표시됩니다. 이 문제의 원인은 무엇이며 해결 방법은 무엇입니까?

해결책:

처음에 고려한 방향은 session_key의 만료를 몰랐기 때문에 여러 번 테스트한 결과 그것이 원인이 아니라는 것을 알게 되었습니다.

그래서 시작했습니다. 여러 관련 블로그를 찾아보며 검색해봐도 관련 문제에 대한 해결책을 찾을 수 없었습니다. 이 문제는 너무 부적절해서 이 분야에는 문제가 많지 않을 수도 있습니다

드디어 복호화된 SDK 소스를 살펴보기 시작했습니다. 코드를 찾아보니 -41001의 이유가 session_key의 길이를 확인하기 위함이라는 것을 알게 되었습니다

if (strlen($this->sessionKey) != 24) {
 return ErrorCode::$IllegalAesKey;
}
//public static $IllegalAesKey = -41001;
//>-41001: encodingAesKey 非法

드디어 로그를 자세히 살펴봤습니다. 일부는 성공하고 일부는 실패했다는 것을 알았고 전혀 패턴을 찾을 수 없었습니다.) session_key의 길이에 주의하면 트릭을 볼 수 있습니다. in it

PHP의 json 문자열은 때때로 백슬래시 ""로 이스케이프됩니다. PHP에서 처리할 때 먼저 백슬래시를 제거한 다음 json_decode

$str = stripslashes($json); 
$arr = json_decode($str,true);

스트립슬래시() 함수를 사용하면 문제가 해결됩니다!

*이것은 작은 질문입니다. 녹음하여 추억을 만드세요

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP WeChat 로그인 41001 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.