Pylons

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

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

やり残し・バグ

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アプリケーションを考える。 ブラウザで当該アプリケーションにアクセ…

GAEでPylonsを使う。

参考にしたページ appengine-monkey Issue 25: os.mkdir function is missing in pkg_resource.py(App Engine SDK 1.2.7) 試した環境 MacOS 10.6.3→上記文書(1)の通りにやってもダメ。virtual.pyが呼ばれたあたりでコケる。 Gentoo Linux(Sparc)→(1)の手順で…

Pylonsは管理者権限がなくても開発環境設置可能

知らんかった... Installingより go-pylons.pyをダウンロード 適当な開発環境用ディレクトリを指定して、go-pylons.pyを実行 $ python go-pylons.py MyPylons→MyPylons配下にPylons環境が設置される。 $ ls -l total 0 drwxr-xr-x 13 masayang masayang 442 …