### Cookie 和安全 Cookie
你可以使用 `set_cookie` 方法在用戶的瀏覽中設置 cookie:
```
class MainHandler(tornado.web.RequestHandler):
def get(self):
if not self.get_cookie("mycookie"):
self.set_cookie("mycookie", "myvalue")
self.write("Your cookie was not set yet!")
else:
self.write("Your cookie was set!")
```
Cookie 很容易被惡意的客戶端偽造。加入你想在 cookie 中保存當前登陸用戶的 id 之類的信息,你需要對 cookie 作簽名以防止偽造。Tornado 通過 `set_secure_cookie` 和 `get_secure_cookie` 方法直接支持了這種功能。 要使用這些方法,你需要在創建應用時提供一個密鑰,名字為 `cookie_secret`。 你可以把它作為一個關鍵詞參數傳入應用的設置中:
```
application = tornado.web.Application([
(r"/", MainHandler),
], cookie_secret="61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=")
```
簽名過的 cookie 中包含了編碼過的 cookie 值,另外還有一個時間戳和一個 [HMAC](http://en.wikipedia.org/wiki/HMAC) 簽名。如果 cookie 已經過期或者 簽名不匹配,`get_secure_cookie` 將返回 `None`,這和沒有設置 cookie 時的 返回值是一樣的。上面例子的安全 cookie 版本如下:
```
class MainHandler(tornado.web.RequestHandler):
def get(self):
if not self.get_secure_cookie("mycookie"):
self.set_secure_cookie("mycookie", "myvalue")
self.write("Your cookie was not set yet!")
else:
self.write("Your cookie was set!")
```