RoR on GAE/Jでユーザー認証使ってみた
http://itrain.appspot.com/top/secret
YARBLの人が作ったBeeU使うと超簡単だった。というか正直言えば、使わなくてもたぶんそれほど難しくない。
まずBeeUの本体を取って来てlib以下に置く
$ git clone git://github.com/olabini/beeu.git $ cp beeu/beeu/beeu.rb lib/
コントローラー改造
require 'beeu' class TopController < ApplicationController include BeeU before_filter :verify_admin_user, :only => 'secret' before_filter :assign_user, :only => 'secret' before_filter :assign_admin_status, :only => 'secret' def index render :text => "I'm JRuby on Rails." end def secret render :text => <<-EOS Hi #{@user.nickname}, you are #{@admin ? '' : 'not '}an administrator. EOS end end
war作って本番を更新
$ rm -rf tmp/war $ warble war $ appengine-java-sdk-1.2.0/bin/appcfg.sh update tmp/war
確認
http://itrain.appspot.com/top/secret
にアクセスするとログイン画面にリダイレクトされて
ログインに成功するとユーザー名と、管理者かそうでないかが表示される。もちろん管理者は私だけなので、他の人がアクセスすると「you are not an administrator.」って言われるはず。
以上。こんだけ。