아직도 쿠키, 세션, 토큰, JWT에 대해 혼란스러워하시나요?
인증이란
- 일반인의 관점에서 말하면 현재 사용자의 신원을 확인하여 "당신 자신"임을 증명하는 것을 의미합니다(예: 매일 출근 및 퇴근할 때, 지문으로 입력해야 하며, 지문이 시스템에 입력한 지문과 일치하면 체크인에 성공합니다.)
- 인터넷 인증:
- 사용자 이름과 비밀번호로 로그인
- 다음으로 로그인 링크 보내기 이메일
- 인증 코드를 받을 휴대폰 번호
- 이메일을 받을 수 있는 한/ 인증 코드는 기본적으로 계정의 소유자임을 의미합니다
인증이란 무엇입니까
-
사용자가 부여합니다 타사 애플리케이션에서 사용자의 특정 리소스에 액세스할 수 있는 권한
- 모바일 애플리케이션, APP를 설치할 때 권한 부여(사진 앨범, 지리적 위치 등에 대한 액세스)를 허용할지 묻는 메시지가 표시됩니다. WeChat 애플릿에 접속하면 로그인 시 애플릿에서 권한 부여(닉네임, 아바타, 지역, 성별 등의 개인 정보 획득)가 허용되는지 여부를 묻는 메시지가 표시됩니다.
- 자격증명이란 무엇입니까?
- 인증 및 승인을 구현하기 위한 전제 조건
- 은 액세스를 표시하기 위해 미디어(인증서)가 필요하다는 것입니다. 개인의 신원전국 시대 시대에 상양(Shang Yang)은 개혁을 수행하고 사진 촬영 포스트를 발명했습니다. 사진 스티커는 정부에서 발행하는 것으로 매끄럽고 곱게 광택이 나는 대나무판에 소지자의 프로필 사진과 출생지가 새겨져 있습니다. 중국인이 이를 소유해야 하며, 그렇지 않으면 비밀 요원이나 간첩으로 간주됩니다.
- 실생활에서 모든 사람은 소유자의 신원을 증명하는 데 사용되는 법적 문서인 전용 주민등록증을 갖게 됩니다. 신분증을 통해 휴대폰카드/은행카드/개인대출/교통카드 등을 신청할 수 있는 인증서입니다.
- 인터넷 애플리케이션에서 일반 웹사이트(예: Nuggets)에는 게스트 모드와 로그인 모드의 두 가지 모드가 있습니다. 게스트 모드에서는 웹사이트의 기사를 정상적으로 열람할 수 있습니다. 기사를 좋아요/수집/공유하려면 로그인하거나 계정을 등록해야 합니다. 사용자가 성공적으로 로그인하면 서버는 사용자가 사용하는 브라우저에 토큰을 발행합니다. 이 토큰은 브라우저가 요청을 보낼 때마다 이 토큰을 가져오며 사용할 수 있습니다. 게스트 모드에서는 사용할 수 없는 기능입니다.
쿠키란 무엇입니까
- HTTP는 상태 비저장 프로토콜입니다(트랜잭션 처리를 위한 메모리가 없으며 클라이언트와 서버 세션이 완료될 때마다 서버는 세션 정보를 저장하지 않습니다
- ). 각 요청은 완전히 서버는 현재 방문자의 신원 정보를 확인할 수 없으며, 지난 요청의 발송인과 이번 요청의 발송인이 동일인인지도 알 수 없습니다. 따라서 세션을 추적하려면(누가 나를 방문하는지 알기 위해) 서버와 브라우저가 적극적으로 상태를 유지해야 합니다. 이 상태는 이전과 이후의 두 요청이 동일한 브라우저에서 온 것인지 서버에 알리는 데 사용됩니다. 이 상태는 쿠키나 세션을 통해 달성되어야 합니다. 쿠키는 클라이언트 측에 저장됩니다.
- 쿠키는 서버에서 사용자의 브라우저로 전송되고 로컬에 저장되는 작은 데이터 조각으로, 다음에 브라우저가 요청할 때 서버로 전송됩니다. 같은 서버. 쿠키는 도메인 간이 아닙니다.
- 각 쿠키는 단일 도메인 이름에 바인딩되며 다른 도메인 이름에서 사용할 수 없습니다. 1단계 도메인 이름과 2단계 도메인 이름 간의 공유는 허용됩니다(신뢰할 수 있음) 도메인입니다).
관련 주제 추천: php 쿠키(주제) www.jsonwebtoken.io/ 사용자가 보호된 경로나 리소스에 액세스하려는 경우 이를 쿠키에 넣어 자동으로 보낼 수 있습니다. 그러나 이는 도메인을 넘나들 수 없으므로 HTTP 요청의 Authorization 필드에 넣는 것이 더 좋습니다. 헤더 패턴을 사용하여 JWT를 추가합니다. 프로젝트 주소 동일: 토큰 장점: 내결함성, 서버 간 세션이 실시간으로 응답할 수 있습니다. 장점: 간단하며 세션에 대한 처리를 수행할 필요가 없습니다. 장점:서버에 문제가 있어도 세션이 손실되지 않습니다 그건 옳지 않아요. 세션의 경우 프로그램이 서버에 세션 삭제를 알리지 않는 한 서버는 일반적으로 사용자가 로그오프할 때 세션을 삭제하라는 명령을 보냅니다. 프로젝트에서 JWT 사용하기
Attribute
Description
name=value
키-값 쌍, 쿠키 이름 및 해당 값은 문자열 유형
이어야 합니다. 값이 유니코드 문자인 경우 , 문자 인코딩이 필요합니다.
- 값이 바이너리 데이터인 경우 BASE64 인코딩이 필요합니다.
domain
쿠키가 속한 도메인 이름을 지정하세요. 기본값은 현재 도메인 이름입니다.
path
쿠키가 적용될 경로(라우팅)를 지정하세요. . 기본값은 '/' 입니다.
/abc
,则只有 /abc
下的路由可以访问到该 cookie,如:/abc/read
로 설정한 경우.
maxAge
쿠키가 만료되는 시간(초)입니다. 정수인 경우 쿠키는 maxAge 초 후에 만료됩니다. 음수인 경우 쿠키는 임시 쿠키이며 브라우저를 닫으면 만료되며 브라우저는 쿠키를 어떤 형태로든 저장하지 않습니다. 0이면 쿠키를 삭제합니다. 기본값은 -1입니다.
- 만료되는 것보다 사용하기 더 쉽습니다.
expires
만료 시간, 쿠키는 설정된 특정 시점 이후에 만료됩니다.
일반 브라우저 쿠키는 기본적으로 저장됩니다. 세션을 종료하기 위해 브라우저를 닫으면 쿠키가 삭제됩니다
secure
쿠키가 보안 프로토콜을 통해서만 전송되는지 여부. 보안 프로토콜에는 데이터를 네트워크에서 전송하기 전에 암호화하는 HTTPS, SSL 등이 포함됩니다. 기본값은 거짓입니다.
secure 값이 true인 경우 쿠키는 HTTP에서는 유효하지 않으며 HTTPS에서만 유효합니다.
httpOnly
쿠키에 httpOnly 속성이 설정된 경우 JS 스크립트를 통해 쿠키 정보를 읽을 수 없지만 쿠키는 여전히 애플리케이션을 통해 수동으로 수정할 수 있으므로 XSS 공격을 예방하는 것은 절대적으로 안전하지 않습니다
세션이란 무엇인가요? 서버 측에서 sessionId는 클라이언트의 쿠키에 저장됩니다.
쿠키와 세션의 차이점
토큰이란 무엇입니까
Acesss 토큰
토큰과 세션의 차이점
JWT란 무엇입니까
JSON 웹 토큰(줄여서 JWT)은 현재 가장 인기 있는
Generate JWTjwt.io/JWT의 원칙
Authorization: Bearer <token>复制代码</token>
JWT 사용 방법
GET /calendar/v1/events
Host: api.example.com
Authorization: Bearer <token>复制代码</token>
방법 2
방법 3
http://www.example.com/user?token=xxx复制代码
프로젝트에서 JWT 사용
Token과 JWT
둘 다 가능 사용자 정보 기록
일반적인 프런트엔드 및 백엔드 인증 방법
일반적인 암호화 알고리즘
FAQ
쿠키 사용 시 고려해야 할 사항
클러스터를 배포할 때 여러 웹 서버 간에 세션을 공유하는 방법에 대한 문제에 직면하게 됩니다. 세션은 단일 서버에서 생성되지만 사용자 요청을 처리하는 서버가 반드시 세션을 생성한 서버일 필요는 없기 때문에 서버는 이전에 세션에 입력된 로그인 자격 증명과 같은 정보를 얻을 수 없습니다.
여러 애플리케이션이 세션을 공유하려는 경우 위의 문제 외에도 교차 도메인 문제도 발생합니다. 서로 다른 애플리케이션이 서로 다른 호스트에 배포될 수 있고 교차 도메인 쿠키 처리가 각 애플리케이션에서 수행되어야 하기 때문입니다.
JWT 사용 시 고려해야 할 사항
암호화 알고리즘을 사용할 때 고려해야 할 사항
분산 아키텍처 하의 세션 공유 솔루션
1. 세션 복제
단점: 세션 수가 많으면 네트워크 정체가 발생하고 서버 성능이 저하될 수 있습니다. 2. 고정 세션/IP 바인딩 전략
단점: 내결함성 부족. 현재 액세스한 서버에 장애가 발생하여 사용자가 두 번째 서버로 이동하면 해당 세션 정보가 유효하지 않습니다.
적용 가능한 시나리오: 오류는 고객에게 작은 영향을 미칩니다. 서버 오류는 확률이 낮은 이벤트입니다.
.
구현 방법: Nginx를 예로 들면, 업스트림 모듈에서 ip_hash 속성을 구성하여 고정 세션을 달성할 수 있습니다. 3. 세션 공유(일반적으로 사용)
4. 세션 지속성
단점: 웹 사이트의 방문 횟수가 많기 때문에 세션을 데이터베이스에 저장하면 데이터베이스 압력에 많은 피해가 발생하고 데이터베이스를 유지하려면 추가 오버헤드가 필요합니다. 브라우저만 닫으면 세션이 정말 사라지나요?
그러나 브라우저는 서버가 닫히기 전에 서버가 닫힐 것임을 적극적으로 알리지 않으므로 서버는 브라우저가 닫혔음을 알 기회가 없습니다. 이러한 착각이 일어나는 이유는 대부분의 세션 메커니즘이 세션 쿠키를 사용하여 데이터를 저장하기 때문입니다. 세션 ID이며, 브라우저를 닫으면 세션 ID가 사라지며, 서버에 다시 연결하면 원래 세션을 찾을 수 없습니다. 서버가 설정한 쿠키가 하드디스크에 저장되거나, 브라우저가 보낸 HTTP 요청 헤더를 다시 작성하여 원래 세션 ID를 서버로 보내는 어떤 방법을 사용하는 경우, 브라우저가 실행 중일 때 원래 세션을 계속 열 수 있습니다. 다시 열었습니다.
정확합니다브라우저를 닫아도 세션이 삭제되지 않으므로 클라이언트가 세션을 마지막으로 사용한 이후의 시간이 이 만료 시간을 초과하면 서버는 강제로 세션 만료 시간을 설정합니다. 클라이언트가 활동을 중지하면 저장 공간을 절약하기 위해 세션이 삭제됩니다. 프로젝트 주소
Postscript

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











컴퓨터의 쿠키는 사용된 브라우저 및 운영 체제에 따라 브라우저의 특정 위치에 저장됩니다. 1. Google Chrome, C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default\Cookies에 저장됨 등.

쿠키는 일반적으로 브라우저의 쿠키 폴더에 저장되며, 브라우저의 쿠키 파일은 일반적으로 바이너리 또는 SQLite 형식으로 저장됩니다. 쿠키 파일을 직접 열면 일부 왜곡되거나 읽을 수 없는 내용이 나타날 수 있으므로 사용하는 것이 가장 좋습니다. 쿠키를 보고 관리하기 위해 귀하의 브라우저에서 제공하는 쿠키 관리 인터페이스.

세션 실패는 일반적으로 세션 수명 만료 또는 서버 종료로 인해 발생합니다. 해결 방법은 다음과 같습니다. 1. 세션 수명을 연장합니다. 3. 쿠키를 사용합니다. 4. 세션 관리 미들웨어를 사용합니다.

PHPSession의 도메인 간 문제 해결 프런트엔드와 백엔드 분리 개발에서 도메인 간 요청이 표준이 되었습니다. 도메인 간 문제를 처리할 때 일반적으로 세션 사용 및 관리가 포함됩니다. 그러나 브라우저 원본 정책 제한으로 인해 기본적으로 도메인 간에 세션을 공유할 수 없습니다. 이 문제를 해결하려면 도메인 간 세션 공유를 달성하기 위한 몇 가지 기술과 방법을 사용해야 합니다. 1. 도메인 간 세션을 공유하기 위한 쿠키의 가장 일반적인 사용

휴대폰의 쿠키는 모바일 장치의 브라우저 애플리케이션에 저장됩니다. 1. iOS 장치의 경우 쿠키는 Safari 브라우저의 설정 -> Safari -> 고급 -> 웹사이트 데이터에 저장됩니다. 2. Android 장치의 경우 쿠키가 저장됩니다. 설정 -> 사이트 설정 -> 크롬 브라우저의 쿠키 등에서

쿠키의 작동 원리에는 쿠키를 보내는 서버, 쿠키를 저장하는 브라우저, 쿠키를 처리하고 저장하는 브라우저가 포함됩니다. 자세한 소개: 1. 서버는 쿠키를 보내고, 서버는 쿠키가 포함된 HTTP 응답 헤더를 브라우저에 보냅니다. 2. 브라우저는 쿠키 등을 저장합니다.

인터넷의 대중화로 인해 우리는 브라우저를 사용하여 인터넷 서핑을 하는 것이 생활 방식이 되었습니다. 브라우저를 일상적으로 사용하다 보면 온라인 쇼핑, 소셜 네트워킹, 이메일 등 계정 비밀번호를 입력해야 하는 상황에 자주 직면하게 됩니다. 이 정보는 다음에 방문할 때 다시 입력할 필요가 없도록 브라우저에 기록되어야 합니다. 이때 쿠키가 유용합니다. 쿠키란 무엇입니까? 쿠키는 서버가 사용자의 브라우저에 전송하고 로컬에 저장되는 작은 데이터 파일을 말하며 일부 웹사이트의 사용자 행동을 포함합니다.

쿠키 삭제의 영향에는 개인화 설정 및 기본 설정 재설정, 광고 경험 영향, 로그인 상태 및 비밀번호 기억 기능 파괴 등이 포함됩니다. 자세한 소개: 1. 개인 설정 및 기본 설정을 재설정합니다. 쿠키가 삭제되면 장바구니가 비워지고 제품을 다시 추가해야 합니다. 쿠키를 삭제하면 소셜 미디어 플랫폼의 로그인 상태도 손실되므로 필요합니다. 2. 쿠키가 삭제되면 웹사이트는 당사의 관심사와 선호도를 이해할 수 없으며 관련 없는 광고 등을 표시하게 됩니다.