1 let captchagen = require('captchagen')
2 let util = require('util')
3 let XDate = require('xdate')
6 let get_session = await _require('/_lib/get_session.jst')
8 let captcha = captchagen.create()
11 // initialize env.session_key, set cookie in env.response
12 let transaction = await env.site.database.Transaction()
13 let session = await get_session(env, transaction)
15 // store captcha text in the session for validation when form submitted
16 let expires = new XDate()
20 {text: captcha.text(), expires: expires.getTime()}
23 await transaction.commit()
27 let captcha_buffer = util.promisify(captcha.buffer).bind(captcha)
28 env.site.serve(env, 200, await captcha_buffer(), 'verification_image.png.jst')