openresty 전단 개발 진급 5 의 쿠키 편
쿠키 를 조작 하 는 방법 은 두 가지 가 있 습 니 다. 하 나 는 응답 헤드 를 직접 설정 하 는 것 입 니 다. 다른 하 나 는 lua - resty - cookie 라 이브 러 리 (사실은 원 리 는 똑 같 습 니 다. 포장 을 조금 했 을 뿐 입 니 다) 입 니 다. 이 라 이브 러 리 도 춘 형 이 쓴 것 이 므 로 안심 하고 사용 할 수 있 습 니 다. 다음은 제 가 두 가지 방법 으로 어떻게 사용 하 는 지 소개 하 겠 습 니 다.
쿠키 읽 기 1 (원생)
print(ngx.var.http_cookie) -- cookie, , nil
print(ngx.var.cookie_username) -- cookie,_ cookie name, nil
쿠키 설정 1 (원생)
ngx.header['Set-Cookie'] = {'a=32; path=/', 'b=4; path=/'} -- cookie
ngx.header['Set-Cookie'] = 'a=32; path=/' -- cookie,
ngx.header['Set-Cookie'] = 'b=4; path=/'
ngx.header['Set-Cookie'] = 'c=5; path=/; Expires=' .. ngx.cookie_time(ngx.time() + 60 * 30) -- Cookie 30
http 프로 토 콜 을 잘 아 는 사람 은 모두 알 고 있 을 것 입 니 다. 쿠키 설정 은 응답 헤드 에 있 는 Set - Cookie 필드 를 통 해 작 동 합 니 다. 원 리 를 알 고 있 는 이상 위의 코드 는 잘 이해 할 수 있 을 것 입 니 다. 사실은 lua 로 응답 헤드 를 설정 하 는 방법 만 알 면 됩 니 다.
쿠키 2 가 져 오기 (lua - resty - cookie)
local cookie = resty_cookie:new()
local all_cookie = cookie:get_all() -- cookie, table, nil
print(cjson.encode(all_cookie))
print(cookie:get('c')) -- cookie , nil
쿠키 2 설정 (lua - resty - cookie)
cookie:set({
key = "c",
value = "123456",
path = "/",
domain = "localhost",
expires = ngx.cookie_time(ngx.time() + 60 * 13)
})
OK, 방문
http://localhost/index 원생
http://localhost/index2 lua-resty-cookie
두 가지 방식 은 각기 장점 이 있다.
첫 번 째 장점: 간단 하고 단점 에 의존 하지 않 는 다: 너무 간단 하 다?추상 적 이지 않 아, 너무 밑바닥?
두 번 째 장점: 획득 설정 이 모두 간단 하고 간단하게 한 층 포장 하여 더욱 표 현 력 있 는 api 인터페이스 단점 을 제공 합 니 다. 라 이브 러 리 를 하나 더 도입 하 는 것 도 단점 이 아 닙 니 다.
상황 을 보고 정 하 세 요. 만약 에 쿠키 조작 이 비교적 적 으 면 첫 번 째 로 할 수 있 습 니 다. 만약 에 많이 조작 하면 두 번 째 로 할 수 있 습 니 다. 인 코딩 이 비교적 통일 되 는 것 을 고려 할 수 있 습 니 다.
예제 코드 데모 12 부분 참조
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.