「webで何か」作るブログ

35歳という遅すぎるスタートをなんとかする為のブログです。基本的に自分にとっての役立ちメモ。

ユーザー情報の登録と暗号化|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');
 moment.tz.setDefault("Asia/Tokyo");
 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は簡単にいろんな処理ができていいな。