ユーザー情報の登録と暗号化|Nodeで簡易な品目メモを作るシリーズ。
ユーザー登録画面を作る
メモを作る画面と表示する画面ができたので、次はログイン関連を作る。
まずはユーザー登録の画面とそのrouting。
今回はregisterで統一する。
register.jade
form(action="/register" method="POST")
p.row
span.input-field.col.s12
input(type="text" name="userName")
label(for="userName") ユーザー名
span.input-field.col.s12
input(type="email" name="userEmail")
span.input-field.col.s12
input(type="password" name="password")
label(for="password") パスワード
label(for="submit)
if(typeof message !== undefined)
p #{message}
jadeの記法はまた後日まとめるかもしれない。
register.jsでユーザー登録と暗号化
var express = require('express');
var router = express.Router();
var connect = require('./connect');
var moment = require('moment-timezone');
var crypto = require('crypto');(暗号化に使うモジュール)
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('register', {
title: 'ユーザー登録'
});
});
router.post('/', function(req,res,next){
var userName = req.body.userName;
var userEmail= req.body.userEmail;
var password = req.body.password;
var cipher = crypto.createCipher('aes192', password); (passwordをaes192で暗号化)
var encrypted = cipher.update('userName', 'utf8', 'hex');(第一引数:salt的な何か?)
encrypted += cipher.final('hex');(ここもまだ理解不足)
var password = encrypted;
var query = 'INSERT INTO users(user_name,user_email,password)
VALUES("'+ userName +'",'+' "' + userEmail + '",'+'"'+password+'")';
connect.query(query,function(err,rows){(DBに書き込む)
res.redirect('/');
});
});
createChiprerはどうももう推奨されていないようで、近いうちにリプレイスしたいところではあるけど、ひとまずこれでパスワードの暗号化ができた。
Expressは簡単にいろんな処理ができていいな。