connect-auth (2)

読めてない。とりあえず public/unauthenticated.html からログインするのは分かった。根拠は以下。

function routes(app) {
  app.get ('/logout', function(req, res, params) {
    req.logout(); // Using the 'event' model to do a redirect on logout.
  })

  app.get(/.*/, function(req, res, params) {
    res.writeHead(200, {'Content-Type': 'text/html'})
    if( req.isAuthenticated() ) {
      res.end( authenticatedContent.replace("#USER#", JSON.stringify( req.getAuthDetails().user )  ) );
    }
    else {
      res.end( unAuthenticatedContent.replace("#PAGE#", req.url) );
    }
  })
}

ルーティング制御な部分ですが、全部一旦ココ通せ的記述。通常は req.isAuthenticated なら next() する形になるのかどうか。で、以降にルーティングなナニの記述を云々していくカンジなのかな。

掘削

ええと列挙してみます。

  • unAuthenticatedContent の先
  • req.isAuthenticated の実装

isAuthenticated の実装は lib/requestMethods.js にある模様。req.isAuthenticated にしているのは auth_middleware.js らしいですが。
とは言えどうも分からない。app.js で createServer の引数として

                      auth( {strategies:[ auth.Anonymous()

みたいなソレが列挙されている訳ですが app.js から見た auth は

   ,auth= require('../lib/index')

とのこと。lib/index.js を見てみるに

var   Auth= require('./auth_middleware')
    , fs= require('fs');

module.exports= Auth;

らしい。多段式ですな。あら? createServer に example_auth_middleware 手続きの戻りも渡されている様子。ここはあまり参考にはならんかな。ただ認証処理の kickoff は

      req.authenticate([urlp.query.login_with], function(error, authenticated) {
        if( error ) {
          // Something has gone awry, behave as you wish.
          console.log( error );
          res.end();
      }

で云々、ということなのか。認証済みかどうかについては req.isAuthenticated 手続きで確認できます、なのかな。あとは res.redirect という手続きがあることも確認できているので認証が終わって何かを出す、までは何とかなってるのかどうなのか。

よく考えたら Graph API なハードルがあるな。とは言え認証云々は実装しとこ。というかこれからだらだら頑張ります。