GAE/JRubyでGoogleアカウントの認証
GAEではGoogleアカウントの認証機構を使うことができるので、自分で認証機能を実装する必要がない。というのを試してみたよ!
準備
$ mkdir test-hogehoge $ cd test-hogehoge $ appcfg.rb gem install sinatra appengine-apis
ソースコード
config.ru
require 'appengine-rack' require 'app' AppEngine::Rack.configure_app( :application => 'test-hogehoge', :version => 1) run Sinatra::Application
app.rb
require 'rubygems' require 'appengine-apis/users' require 'sinatra' # すべてのアクションを実行する前にログイン # ログインしたら '/' へリダイレクト before do unless AppEngine::Users.logged_in? redirect AppEngine::Users.create_login_url('/') end end # ここへ来るときにはログイン済みのはず get '/' do user = AppEngine::Users.current_user "Hello, #{user.email}!" end # リンクとかないので直接URL入力で飛んでね! get '/logout' do redirect AppEngine::Users.create_logout_url('/') end
実行
まぁいつもどおりに。
$ dev_appserver.rb . # ローカルで実行 $ appcfg.rb update . # デプロイ
前みたいにしばらくはこちらで動いていますよっと。