forked from ring-clojure/ring
-
Notifications
You must be signed in to change notification settings - Fork 3
Daehyun Kim edited this page Dec 20, 2015
·
1 revision
Ring 핸들러에서 쿠키를 지원하려면, wrap-cookies
미들웨어로 감싸자.
(use 'ring.middleware.cookies)
(def app
(wrap-cookies your-handler))
이렇게 하면 요청 맵에 :cookies
키가 추가되고, 아래와 같은 쿠키 맵이 포함된다:
{"session_id" {:value "session-id-hash"}}
쿠키를 발급하려면, 응답 맵에 :cookies
키를 추가한다:
{:status 200
:headers {}
:cookies {"session_id" {:value "session-id-hash"}}
:body "Setting a cookie."}
쿠키 값 말고도, 이하 추가 속성을 지정할 수 있다:
-
:domain
- 쿠키를 특정 도메인에 제한한다 -
:path
- 쿠키를 특정 경로에 한정한다 -
:secure
- true로 하면 쿠키를 HTTPS URL에만 쓴다 -
:http-only
- true로 하면 HTTP 요청에만 쿠키를 쓴다. (자바스크립트에서는 접근할 수 없다.) -
:max-age
- 쿠키의 유효 시간(단위: 초) -
:expires
- 쿠키의 만료 일시
예로, 한 시간 동안 유효한 안전한 쿠키를 발급하려면, 아래와 같이 한다:
{"secret" {:value "foobar", :secure true, :max-age 3600}}