投稿が半年も抜けちゃいました・・・。いかんですね。皆さまお元気でしたでしょうか? サイトのドメインを決める際に「www」をつけるかつけないか、少しは考えることがあると思います。今回は、Node.jsで「www」の有り無しで正しくリダイレクトさせる方法をご紹介します。 app.configureの直下に書きます。index.htmlにあたる、app.get ‘/‘以降に書いてしまうと、こちらが先に有効になってしまいますので、app.get群の一番最初に書きましょう。 wwwなしでアクセスがあった時に、wwwありにリダイレクトさせる方法 coffee 1 2 3 4 5 6 7 8 app.get '/*', (req, res, next) -> # req.headresの中にwwwが含まれていれば、 if req.headers.host.match(/^www/) is null # wwwをつけた状態でリダイレクトします。 res.redirect 'http://www.' + req.url else # それ以外は次へ進みます。 next() 記述自体はとても簡単です。よくあるWEBサーバーソフトウェアのApacheですと、.htaccsessに書いて、301リダイレクトしますが、Node.jsの場合は、res.redirectで自動的に301を返すようになっています。今度は逆に、wwwありでアクセスがあった場合に、wwwを取ってリダイレクトする方法です。 wwwありでアクセスがあった時に、wwwを取ってリダイレクトさせる方法 coffee 1 2 3 4 5 6 7 8 app.get '/*', (req, res, next) -> # req.

続きを読む

あたしにゃ~そういう難しいことはわからないですがね(こん平風)、閲覧者に意図せず別のWebサイト上で掲示板への書き込みなどを行わせ、警察が誤認逮捕してしまった事件がありましたが、これがCSRF攻撃というから恐ろしいじゃないですか。Node.jsでもしっかり対策しなければなりませんが、Express version3.0以上で、少しはまったところがありましたのでメモします。 CSRFとは ググればいっぱい出てきます。CSRFをscrと打ち間違えそうになるほど自分はフロント側の人間なので、詳しいことは分かりませんが、下記のサイトが割りと分かりやすかったです。 リクエスト強要(CSRF)対策 http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/301.html 単純に、Node.js express CSRFとかでググった先人様の知恵などでは、どうもexpressのバージョンが2とかの情報が多かったです。一番目にしたのは、「express-csrf」というモジュールです。これを使うと、下記のアラートが出てしまいます。 express-csrf is deprecated. Please use Connect’s csrf middleware instead express-csrfは推奨されません。代わりに、ConnectのCSRFミドルウェアを使用してください(直訳) express-csrfは非推奨 もうこのモジュールを使うのを推奨していないみたいでした。express verison3以降ではミドルフェアとして使えるみたいなので調べてみると、expressのconnectの中に、csrf.jsがちゃんとありました。あと、先人様の知恵情報では、dynamicHelpersを使う方法がありました。express version3以降では、このダイナミックヘルパーの使い方が変わりましたので、この辺りの使い方も変わってしまいました。いろんなサイトを探した結果、下記のサイトに使い方が載ってました。 Express 3 Tutorial: Contact Forms with CSRF http://dailyjs.com/2012/09/13/express-3-csrf-tutorial/ 要点をまとめると、 CSRF対策は専門の方から具体的な内容を聞いてください express-csrfは非推奨 参考サイトでdynamicHelperで書かれていたら、express version3以降ではコピペ出来ない チュートリアルが英語サイトだったので下記にまとめます js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 app.

続きを読む

前回の、 【Node.js】OAuth認証でPassportが最強に使いやすい の続きです。今回は準備から実際にコーディングのところまで説明します。 検証、制作環境など Mac OS 10.6 ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 jadeを使いたいと思います。 node-oauth node_modules localhost:3000で検証 さっそく準備をします。 # expressでnode-passportとう名前のディレクトリを作ります。 # 名前はなんでもいいですが、今回はそうします。 # -sでオプションでセッションをつけます。 $ express -s node-passport # node-passportに移動してnpm installします。 $ cd node-passport $ npm install # passport, passport-facebook, passport-twitterのmoduleをインストール。 $ npm install passport $ npm install passport-facebook $ npm install passport-twitter これで準備完了です。app.jsを開いて、コードを書き足していきます。 app.js 1 2 3 4 5

続きを読む

まず何が最強なのかは対応しているSNSがズラッと! Local (username and password) BrowserID OpenID OAuth (OAuth 1.0 and 2.0) SAML by Henri Bergius WS-Federation + SAML 2.0 by Auth10 WebID by Baptiste Lafontaine 37signals 500px by Jeremy Benaim AngelList AOL App.net by Michael Owens Bitbucket DailyCred by Hank Stoever Digg Dropbox Dwolla Evernote Facebook FamilySearch Fitbit Flattr by Johan Uhle Flickr by Johnny Halife Force.com (Salesforce, Database.com) by Joshua Birk Foursquare FreedomWorks by Carlos Rodriguez Geoloqi GitHub Goodreads Google (OpenID) Google (OAuth 1.

続きを読む

いままで、FlashのActionScript3.0や、Ajaxを使ったり、PHPなんかも駆使してOAuthを実装していました。node.jsではnode-oauthというモジュールを使えば、いとも簡単にOAuth認証ができてしまいます。いとも簡単とはいえ、はまったところがありましたので、今回はnode-oauthを使ってTwitterをOAuth認証する方法と、はまってしまったポイントを抑える内容にしたいと思います。下記の参考サイトに載っていたソースを元に補足します。 参考サイト - http://moonlitscript.com/post.cfm/how-to-use-oauth-and-twitter-in-your-node-js-expressjs-app/ - ciaranj/node-oauth · GitHub - https://github.com/ciaranj/node-oauth 検証、制作環境など Mac OS 10.6 山ライオンって強いの?(´・ω・`) ターミナル.app node.js -v v0.8.4 express version 3.0.0rc3 node-oauth node_modules localhost:3000で検証 TwitterのOAuth認証ができるまでの手順 dev.twitter.comで「Create an app」します。 Website:にはlocalhost:3000を入力したいところですが、Twitterの入力フォームで弾かれるので、localhostと同じURLのhttp://127.0.0.1:3000を入力します。 Callback URL:には、http://127.0.0.1:3000/auth/twitter/callbackと入力しておきます。 必要な情報を入力して、Consumer keyとConsumer secretを取得します。※1 ターミナル.appを開いて、express -sセッションオプションを付けて雛形を作ります。※2 node-oauthをnpm installします。 app.jsを開いて、コーディングします。 $ node app.js でサーバーを立ちあげてアクセスします。 ※1:Consumer keyとConsumer secretの扱いは大切に。 ※2:expressでセッションを使うオプションを使うところが重要なポイントです。 node-oauthのインストール方法 やはり毎度おなじみnpmを使います。expressを使って雛形を作るまでやってみましょう。 //-e はejs、-sはセッションを使うオプション $ express -e -s oauth_sample create : oauth_sample create : oauth_sample/package.json create : oauth_sample/app.

続きを読む

node.js勉強中です。先人の知恵さまのサイトを見る日々が続きます。色んなサンプルサイトで使われいているexpress。雛形を作成してくれる便利なフレームワークです。このexpressを使って雛形をインストールするわけですが、先人の知恵さまサイトではejsが使われてて、自分の環境では何をやっても絶対にjadeがインストールされてしまっていました。今回はなんでそれが起きたのかと、expressでejsがインストールされない方へ向けての対処法を書きます。 ※2012/08/18追記 express version 3.xから、ejsの指定の方法が変わったようです。tamaさんにご教授頂きました。ありがとうございます! express version 3.xでejsを指定する方法 version 2.xまでは、express -t ejsと指定する方法でしたが、version 3.x以降は、express -eでejsが指定されるみたいです。 //バージョンの確認。 $ express version 3.0.0rc3 //ejsを指定する。 $ express -e sample create : sample create : sample/package.json create : sample/app.js create : sample/public create : sample/public/javascripts create : sample/public/images create : sample/public/stylesheets create : sample/public/stylesheets/style.css create : sample/routes create : sample/routes/index.js create : sample/views create : sample/views/index.ejs install dependencies: $ cd sample && npm install run the app: $ node app ちゃんとejsがインストールされました!^▽^

続きを読む

プロフィール画像

こたぽん

ビールと生ハムが好き

フロントエンドエンジニア

Tokyo