프런트 엔드는 백엔드 tp6 확인 코드를 어떻게 호출합니까?
Environment
Front-end: uni-app
Back-end: thinkphp6
프론트엔드 로그인 페이지를 할 때 로그인 페이지에서 백엔드 thinkphp6 인증코드 기능을 호출하고 싶어서 백엔드 API 인터페이스 이미지 주소를 통해 프런트엔드에서 보안문자를 가져오려고 합니다. 시도한 방법은 백엔드 API 메소드인 getCaptcha를 설정하는 것인데, 해당 메소드에서 captcha_src()를 호출한 후 이미지 주소를 획득한 후 프론트엔드 호출로 반환하면 정상적으로 인증코드 이미지가 표시될 수 있습니다. 그런데 문제는 로그인 시 항상 인증번호가 틀렸다는 메시지가 뜹니다. 이후 비교 결과, 획득한 인증코드의 세션ID가 로그인 및 제출 당시의 세션ID와 일치하지 않아 인증에 실패했다는 사실을 발견했습니다.
왜 프론트 엔드가 img 태그의 src 주소를 통해 thinkphp6의 인증 코드 주소를 가리키는 경우 백그라운드에서 생성된 세션 ID가 현재 페이지에서 작업할 때 생성된 세션 ID와 다른지 이 메커니즘은 아직 명확하지 않습니다. .
나중에 captcha 클래스에 직접 인증 코드를 생성하는 create() 메소드가 있다는 것을 확인했습니다. 테스트 후 API를 통해 이 메소드를 호출하면 인증 코드가 생성되고 세션 ID가 세션 ID와 일치합니다. 나중에 로그인했는데 또 다른 문제가 발생했습니다.이 create() 메서드가 응답 메서드를 반환하는데 프런트 엔드의 uni.request를 가져올 수 없어 인증 코드 이미지가 표시되지 않습니다. 고민 끝에 captcha 클래스를 수정하고 create() 메소드를 다른 새로운 메소드로 변경하기로 결정했습니다. 이 메소드는 생성된 인증 코드의 base64 인코딩을 반환한 후 마지막으로 프론트엔드에 문자열 결과를 반환합니다. 일반 디스플레이 및 인증 로그인이 가능합니다.
구체적인 코드는 다음과 같습니다.
1. captcha 클래스의 createApi() 메소드를 추가합니다. 이 메소드는 실제로 create()의 복사본이지만 반환된 값은 다음과 같이 수정됩니다. . 프론트 엔드는 인증 코드를 수신하고 표시합니다
$base64_data = 'data:image/png;base64,' . base64_encode($content);//合成图片的base64编码 return $base64_data;
최신 10개의 thinkphp 비디오 튜토리얼
위 내용은 프런트 엔드는 백엔드 tp6 확인 코드를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)