>  기사  >  백엔드 개발  >  토큰 PHP를 사용하는 방법

토큰 PHP를 사용하는 방법

藏色散人
藏色散人원래의
2021-09-21 09:21:512858검색

PHP에서 토큰을 사용하는 방법: 1. 클라이언트 사용자는 로그인하고 토큰을 요청하기 위해 사용자 이름과 비밀번호를 입력합니다. 2. JWT 사양을 사용하여 토큰을 생성합니다. 3. 토큰의 적시성을 확인합니다. 클라이언트는 토큰 요청 데이터를 얻습니다.

토큰 PHP를 사용하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터.

토큰 PHP를 사용하는 방법은 무엇입니까?

PHP 토큰 생성 및 사용

1. 로그인에 토큰을 사용하는 이유

프런트엔드와 백엔드를 분리하거나 여러 웹 애플리케이션을 지원하려면 원본을 사용하는 데 큰 문제가 있습니다. 쿠키 또는 세션
쿠키와 세션 인증은 인증을 수행하기 전에 동일한 기본 도메인 이름 아래에 있어야 합니다(현재 문제 해결을 위해 세션을 Redis에 저장할 수 있습니다).

2. 솔루션

oauth2 및 jwt

jwt: 보안 표준입니다. 기본 아이디어는 사용자가 인증 서버에 사용자 이름과 비밀번호를 제공하고 서버가 사용자가 제출한 정보의 적법성을 확인하는 것입니다. 확인에 성공하면 토큰(토큰)이 생성되어 반환됩니다.
OAuth2: 안전한 인증 프레임워크입니다. 시스템의 다양한 역할, 사용자, 서비스 프런트엔드 애플리케이션(예: API) 및 클라이언트(예: 웹사이트 또는 모바일 앱) 간에 상호 인증을 달성하는 방법을 자세히 설명합니다.
(jwt, 이 JSON 웹 토큰은 여기서 인증에 사용됩니다)

3. 생성 방법

  1. 헤더: 암호화 유형

  2. 설명: 메시지 내용

  3. 키: 암호화할 임의의 코드

  4. .을 사용하여 연결한 다음 hs256을 사용하여 암호화하여 토큰을 생성합니다.

4. 자세한 생성 방법

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은 암호화를 위해 사용됩니다. 두 개념은 다릅니다.)

5 토큰 저장 위치

는 일반적으로 다음과 같습니다. 요청 헤더에 Authorization 필드는 Bearer 모드를 사용하여 JWT(Authorization: Bearer)를 추가합니다. (물론 클라이언트가 인식할 수 있는 한 URL 뒤에 매개변수로 전달하는 등 어디에나 배치할 수도 있습니다. , 하지만 JWT는 사양이므로 사양을 따르는 것이 좋습니다.)

추천 학습: "PHP Video Tutorial"

6. 사용 방법

  1. 클라이언트 사용자가 사용자 이름과 비밀번호를 입력하고 로그인합니다. , 토큰 요청
  2. 서버는 요청을 받은 후 JWT 사양을 사용합니다. 토큰을 생성하여 클라이언트에 반환합니다.
  3. 클라이언트는 토큰을 받은 후 암호를 해독한 후 토큰의 적시성을 확인합니다. 토큰의 만료 시간)을 저장하고
  4. 클라이언트가 토큰으로 데이터를 요청합니다
  5. 서버가 토큰을 수신하고 이를 해독한 후 사용자 신원을 확인하고 적시성을 확인한 다음 사용자를 확인합니다

7.

그래서 토큰을 사용하다가 토큰이 캡처되면 위조 및 사칭이 가능합니다. 따라서 상대적으로 보안이 높으면 oauth2

를 사용하는 것이 좋습니다.

위 내용은 토큰 PHP를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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