>  기사  >  백엔드 개발  >  PHP 토큰을 생성하는 방법

PHP 토큰을 생성하는 방법

(*-*)浩
(*-*)浩원래의
2019-10-12 14:13:326334검색

프런트 엔드와 백엔드를 분리하거나 여러 웹 애플리케이션을 지원하려면 원래 쿠키나 세션을 사용하는 데 큰 문제가 있습니다

쿠키 및 세션 인증 필요 같은 장소에서 인증은 기본 도메인 이름에서만 수행할 수 있습니다. (현재 솔루션을 위해 세션을 Redis에 저장할 수 있습니다.)

PHP 토큰을 생성하는 방법

Solution

oauth2 및 jwt(권장 학습: PHP 비디오 tutorial)

jwt: 안전 표준입니다. 기본 아이디어는 사용자가 인증 서버에 사용자 이름과 비밀번호를 제공하고 서버는 사용자가 제출한 정보의 적법성을 확인하고, 확인에 성공하면 토큰(토큰)이 생성되어 반환된다는 것입니다. #🎜 🎜#

OAuth2: 안전한 인증 프레임워크입니다. 시스템의 다양한 역할, 사용자, 서비스 프런트엔드 애플리케이션(예: API) 및 클라이언트(예: 웹사이트 또는 모바일 앱) 간에 상호 인증을 달성하는 방법을 자세히 설명합니다. (JWT, 여기서는 이 JSON 웹 토큰이 인증에 사용됩니다)

생성 방법

헤더: 암호화 유형#🎜🎜 ##🎜🎜 #설명: 메시지 내용

key: 암호화에 사용되는 임의의 코드

위의 세 부분을 사용하여 연결한 후 hs256을 사용하여 암호화하고 토큰을 생성합니다# 🎜🎜 #

상세 생성 방법

1) 헤더는 일반적으로 토큰 유형(예: JWT)과 사용된 암호화 알고리즘(예: 예: SHA256 또는 RSA)

{
      "alg": "HS256",
      "typ": "JWT"
}
그러면 이 json은 Base64Url로 인코딩되어 첫 번째 부분이 됩니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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