Posted on 2015/04/07 20:32
171 views
2ヶ月ほど出稼ぎ(出向ね)に行って、太りました(まだ行ってるけど)。久しぶりの投稿です。
年度末で危機的状況だった案件がやっと収束してきたので、1日オフィスに引き籠って、掃除したり、洗濯したり、料理したり、放ったらかし気味のお客さんの仕事を片付けたり。余った時間でここの開発まとめ。運動とかする方向に行かんな〜。かわりと言っちゃなんですが、ひっそりと今日からユーザー登録できるようになってます。いまいち使い勝手が良くなかったり、実装したいことも残ってて、この先どうするかも決めあぐねてたりしますが、よかったら使ってください m(\\)m
全然整理ができてなくて、ここぞなプログラミングネタもないんですが、ユーザー登録に使ってみた reacptcha が結構使えそうなので載せときます。
Webページ側のform内に置くHTMLはこんな感じ。非表示の name: _recaptcha に確認用の文字列が入ってくる。
<div class="g-recaptcha" data-sitekey="(サイトキー)" data-callback="recaptchCallback" data-expired-callback="recaptchExpiredCallback"
></div>
<input type="hidden" class="form-control" id="_recaptcha" name="_recaptcha" value="" required>
で、スクリプトをどこかに置いておく。
function recaptchExpiredCallback() { // <= 期限切れ時用。ちょっと怪しい
$('#regist-form .form-control#_recaptcha').attr('value','');
$('#regist-form').validator('validate');
}
function recaptchCallback(code) { // <= コールバック用
$('#regist-form .form-control#_recaptcha').attr('value',code);
$('#regist-form').validator('validate');
}
裏側(サーバ側、NodeJS)はこんな感じ。確認用の文字列を送って、大丈夫かどうか確認する。
checkRecaptcha = function( req, res, callback ){
var params = checkParams( req ); // <- パラメータ取得関数。POSTデータがparams.hash に入る
var remoteIp = req.headers['x-real-ip']; // <- 手前がNginxの時
if ( params.hash._RECAPTCHA ) {
request.post({
url: "https://www.google.com/recaptcha/api/siteverify",
form: {
secret: '(サイトキー)',
response: params.hash._RECAPTCHA,
remoteip: remoteIp
}
}, function ( err, ret, body ){
var success = false;
if ( !err && ret.statusCode == 200 ) {
var json = JSON.parse( body );
if ( json.success ) {
success = true;
}
}
callback( req, res, false );
});
}
}
そういや、GlobeSSL(グローバルじゃなくグローブね)なる怪しげな格安SSL証明書をここ用に取得してみた。暗号化目当てじゃなく、HTTP/2でデカめの画像のパフォーマンス向上のためなので。ちなみに、ひとつ1000円(安)
写真は目黒川(先週、出向先までの道のりで撮影)。あー、花見行くの忘れてたな〜