프런트 엔드와 백엔드를 분리하거나 여러 웹 애플리케이션을 지원하려면 원래 쿠키나 세션을 사용하는 데 큰 문제가 있습니다
쿠키 및 세션 인증 필요 같은 장소에서 인증은 기본 도메인 이름에서만 수행할 수 있습니다. (현재 솔루션을 위해 세션을 Redis에 저장할 수 있습니다.)
Solution
oauth2 및 jwt(권장 학습: PHP 비디오 tutorial)
jwt: 안전 표준입니다. 기본 아이디어는 사용자가 인증 서버에 사용자 이름과 비밀번호를 제공하고 서버는 사용자가 제출한 정보의 적법성을 확인하고, 확인에 성공하면 토큰(토큰)이 생성되어 반환된다는 것입니다. #🎜 🎜#
OAuth2: 안전한 인증 프레임워크입니다. 시스템의 다양한 역할, 사용자, 서비스 프런트엔드 애플리케이션(예: API) 및 클라이언트(예: 웹사이트 또는 모바일 앱) 간에 상호 인증을 달성하는 방법을 자세히 설명합니다. (JWT, 여기서는 이 JSON 웹 토큰이 인증에 사용됩니다)생성 방법
헤더: 암호화 유형#🎜🎜 ##🎜🎜 #설명: 메시지 내용key: 암호화에 사용되는 임의의 코드위의 세 부분을 사용하여 연결한 후 hs256을 사용하여 암호화하고 토큰을 생성합니다# 🎜🎜 #상세 생성 방법1) 헤더는 일반적으로 토큰 유형(예: JWT)과 사용된 암호화 알고리즘(예: 예: SHA256 또는 RSA) {
"alg": "HS256",
"typ": "JWT"
}
2) 페이로드는 선언입니다. 선언은 엔터티에 관한 것입니다.
{ "exp": "1525785339", "sub": "1234567890", "name": "John Doe", "admin": true }
페이로드는 Base64Url로 인코딩되어 두 번째 부분이 됩니다
(PS: 이 정보는 변조로부터 보호되지만 누구나 읽을 수 있습니다. 암호화되지 않은 중요한 정보는 보내지 마세요. 안에 넣으세요) 3). 암호화 키
4)를 사용하여 서명하려면 첫 번째 인코딩된 부분, 두 번째 인코딩된 부분을 차례로 사용해야 합니다. 열쇠 열쇠. 첫 번째 부분의 암호화 알고리즘을 사용하여
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), key )
에 서명합니다. 이 서명은 메시지가 변조되었는지 확인하는 데 사용됩니다.
(PHP는 암호화에 crypt 방식을 사용합니다. 참고: 변조 방지를 위해 SHA-256, 암호화를 위해 AES-256을 사용합니다. 두 개념이 다릅니다.)위 내용은 PHP 토큰을 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!