SimpleDB

RPXを使って認証を賢く簡単に

OpenIDだとかFacebook認証だとか、おじさんにはどういう仕組になっているのだか全然わからないのだが、世の中どんどん進化している。 この手の認証サービスを活用することで、利用者もサービス提供側も幸せになれる。 利用者は新たなID/Passwordの組合せを覚…

Amazon SimpleDBのConsistency Readをbotoから使うには

botoはSVN版から持ってくる。 $ svn checkout http://boto.googlecode.com/svn/trunk/ boto-read-only $ cd boto-read-only $ sudo python setup.py install select()にはconsistent_readを指定する引数がある。domain.pyより: def select(self, query='', n…

やり残し・バグ

Test書いてない。 OpenID認証を通すには、extra_environ = {'REMOTE_USER': 'test'}をRequestに渡せばよいはず。 Bug OpenID認証画面で存在しないOpenIDや空白を投入すると、エラーでこける。 /verifyが呼ばれる際に、app_globalを与えられていない模様。結…

利用者属性の登録

次に、OpenIDで認証した人がニックネームと時差を登録できるようにする。 モデル model/__init__.py import boto import jsonpickle class UserProperty(object): def __init__(self, openid = None, nickname = None, time_diff = 0): self.openid = openid…

Signout

今度はOpenIDからのSignoutを実装する。 Helper lib/helpers.py from routes import url_for clock.py helper取り込み from myclock.lib import helpers as h テンプレート修正 now.html <%inherit file="/base/index.html"/> ${c.content} <br/> <a href="${h.url_for(action = 'signout')}">Signout</a> develop</br/>…

OpenIDログイン画面の設定

OpenID認証画面だが、以下の問題が残っている。 OpenID入力欄が狭い。 時刻表示できない。 そもそも、この認証画面は誰が表示しているのだろう? もちろん、AuthKitなわけだが、具体的にはAuthKitのauthkit/authenticate/openid.pyの中のtemplate()で定義さ…

OpenID認証を取り入れる

次にOpenID認証を取り込む。 AuthKitを使うのが手っ取り早い。 だけど、説明書が整備されていなくて結構苦労した。 以下の手順でたぶんOK。 AuthKitの設定(config/middleware.py) from myclock.config.environment import load_environment from authkit.aut…

サーバの時刻を表示する

まずは認証なしでサーバの時刻を表示する。 コントローラ名はclock、アクション名はnowでいいでしょ。 $ paster controller clock clock.py import logging from pylons import request, response, session, tmpl_context as c from pylons.controllers.util…

プロジェクト設置

pasterコマンドで一発。 $ paster create -t pylons MyClock Enter template_engine (mako/genshi/jinja2/etc: Template language) ['mako']: Enter sqlalchemy (True/False: Include SQLAlchemy 0.5 configuration) [False]: 自分はVM配下のLinuxで動かして…

前提

Pylonsが設置されていること。 注: SimpleDBを使うが、別にAmazon EC2を使う必要はない。手元のLinuxやMacでいけるはず。 formbuilder - AWSのアカウントを持っていること。 これがないとSimpleDB使えません。 botoが設置されていること。 Tips: /etc/boto.c…

Pylons+SimpleDB+OpenIDチュートリアル風味

Amazon Web Serviceには、SimpleDBがついてくる。 そのSimpleDBをPylonsから使ってみようという試み。 こうしたほうがいいんでないの? という指摘歓迎。 作るもの 以下のような簡単なWebアプリケーションを考える。 ブラウザで当該アプリケーションにアクセ…