처음에는 access_token을 데이터베이스에 넣고 획득할 때마다 만료 여부를 확인합니다. access_token의 유효기간과 방문횟수 문제를 해결할 수 있습니다. 그러나 최근 공식 계정을 시스템과 인터페이스하고 공식 계정의 데이터베이스를 취소해야 하는 경우가 있는데, 이때 access_token 등을 시스템 데이터베이스에 넣는 것은 적절하지 않습니다.
Xue Xilin이 작성한 이 기사의 이점: WeChat은 access_token 글로벌 캐싱 문제를 처리하고 싱글 모드 사용을 구현하여 access_token을 캐시합니다.
나중에 참고할 수 있도록 기억해두세요. ㅋㅋㅋ public class TokenSingleton {
//缓存accessToken 的Map ,map中包含 一个accessToken 和 缓存的时间戳
private Map<String, String> map = new HashMap<>();
private TokenSingleton() {
}
private static TokenSi
ngleton single = null;
// 静态工厂方法
public static TokenSingleton getInstance() {
if (single == null) {
single = new TokenSingleton();
}
return single;
}
public Map<String, String> getMap() {
String time = map.get("time");
String accessToken = map.get("access_token");
Long nowDate = new Date().getTime();
if (accessToken != null && time != null && nowDate - Long.parseLong(time) < 6000*1000) {
System.out.println("accessToken存在,且没有超时 , 返回单例");
} else {
System.out.println("accessToken 超时 , 或者不存在 , 重新获取");
String access_token=JSSDKUtil.getAccessToken();
//这里是直接调用微信的API去直接获取 accessToken 和Jsapi_ticket 获取
String jsapi_token = JSSDKUtil.getTicket(access_token);
//"获取jsapi_token";
map.put("time", nowDate + "");
map.put("access_token", access_token);
map.put("jsapi_token", jsapi_token);
}
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
public static TokenSingleton getSingle() {
return single;
}
public static void setSingle(TokenSingleton single) {
TokenSingleton.single = single;
}
}
관련 추천:
간단한 내용 MySQL 메모리(글로벌 캐시 + 스레드 캐시) 사용 지침 분석_MySQL
위 내용은 싱글톤 모드는 access_token 전역 캐시 문제를 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 PHP의 인터페이스를 생성, 구현 및 사용하는 방법을 설명하여 코드 구성 및 유지 관리에 대한 이점에 중점을 둡니다.

이 기사에서는 PHP의 암호 해싱에 대한 Crypt ()와 Password_hash ()의 차이점에 대해 논의하여 최신 웹 애플리케이션에 대한 구현, 보안 및 적합성에 중점을 둡니다.

기사는 입력 유효성 검사, 출력 인코딩 및 OWASP ESAPI 및 HTML 청정기와 같은 도구를 통해 PHP의 크로스 사이트 스크립팅 (XSS) 방지에 대해 논의합니다.

PHP의 자동로드는 필요할 때 클래스 파일을 자동으로로드하여 메모리 사용을 줄이고 코드 구성을 향상시켜 성능을 향상시킵니다. 모범 사례에는 PSR-4 사용 및 효과적으로 코드 구성이 포함됩니다.

PHP 스트림은 일관된 API를 통해 파일, 네트워크 소켓 및 압축 형식과 같은 자원의 처리를 통합하여 복잡성을 추상화하고 코드 유연성 및 효율성을 향상시킵니다.

이 기사에서는 PHP의 파일 업로드 크기 관리, 기본 제한 2MB 및 php.ini 설정을 수정하여이를 늘리는 방법에 중점을 둔 파일 업로드 크기 관리에 대해 설명합니다.

이 기사에서는 PHP 7.1에 도입 된 PHP의 무효 유형에 대해 설명하여 변수 또는 매개 변수가 지정된 유형 또는 널이 될 수 있습니다. 개선 된 가독성, 유형 안전 및 명시 적 의도와 같은 이점을 강조하고 선언하는 방법을 설명합니다.

이 기사에서는 Unset ()와 Unlink () 기능의 차이점에 대해 설명합니다. 프로그래밍의 목적 및 사용 사례에 중점을 둡니다. unset ()는 메모리에서 변수를 제거하고 Unlink ()는 파일 시스템에서 파일을 삭제합니다. 둘 다 Effec에 중요합니다


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

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

Dreamweaver Mac版
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구
