Koa.js-쿠키

쿠키는 서버 요청과 함께 클라이언트로 전송되고 클라이언트 측에 저장되는 간단하고 작은 파일 / 데이터입니다. 사용자가 웹 사이트를 다시로드 할 때마다이 쿠키가 요청과 함께 전송됩니다. 이렇게하면 사용자 작업을 추적하는 데 도움이됩니다. HTTP 쿠키에는 수많은 용도가 있습니다.

  • 세션 관리
  • 개인화 (추천 시스템)
  • 사용자 추적

Koa에서 쿠키를 사용하기 위해 다음과 같은 기능이 있습니다. ctx.cookies.set()ctx.cookies.get(). 새 쿠키를 설정하기 위해 Koa 앱에서 새 경로를 정의하겠습니다.

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie() {
   this.cookies.set('foo', 'bar', {httpOnly: false});
}

var _ = router();

app.use(_.routes());
app.listen(3000);

쿠키가 설정되어 있는지 확인하려면 브라우저로 이동하여 콘솔을 실행하고 다음을 입력하십시오.

console.log(document.cookie);

그러면 다음과 같은 출력이 생성됩니다 (브라우저의 확장으로 인해 더 많은 쿠키가 설정 될 수 있음).

"foo = bar"

다음은 위의 예입니다.

브라우저는 또한 서버에 쿼리 할 때마다 쿠키를 다시 보냅니다. 서버의 쿠키를 보려면 경로의 서버 콘솔에서 해당 경로에 다음 코드를 추가하십시오.

console.log('Cookies: foo = ', this.cookies.get('foo'));

다음에이 경로에 요청을 보내면 다음 출력이 표시됩니다.

Cookies: foo = bar

만료 시간이있는 쿠키 추가

만료되는 쿠키를 추가 할 수 있습니다. 만료되는 쿠키를 추가하려면 'expires'속성이 만료되기를 원하는 시간으로 설정된 객체를 전달하면됩니다. 예를 들면

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
	this.cookies.set('name', 'value', { 
      httpOnly: false, expires: 360000 + Date.now() });
}

var _ = router();

app.use(_.routes());
app.listen(3000);

기존 쿠키 삭제

쿠키 설정을 해제하려면 쿠키를 빈 문자열로 설정하면됩니다. 예를 들어 다음과 같은 쿠키를 삭제해야하는 경우foo, 다음 코드를 사용하십시오.

var koa = require('koa');
var router = require('koa-router');
var app = koa();

_.get('/', setACookie);

function *setACookie(){
   //Expires after 360000 ms from the time it is set.
   this.cookies.set('name', '');
}

var _ = router();

app.use(_.routes());
app.listen(3000);

이렇게하면 해당 쿠키가 설정 해제됩니다. 당신은 떠나야합니다HttpOnly 클라이언트 측 코드에서 쿠키를 사용하지 않을 때 옵션을 true로 설정합니다.