Pylons-20080827 + Authkit อย่างง่าย

ผมลองใช้ authkit ครั้งแรกก็ทำได้ง่ายๆ แต่ไม่ได้ blog ไว้ได้เรื่องทันทีพยายามทำอีกทีทำไม่ได้ T_T. แต่ก็แก้ได้ละ

แก้ config/middleware.py: โดยเพิ่ม import authkit.authenticate เข้าไป ไม่พอ

...
    # Routing/Session/Cache Middleware
    app = RoutesMiddleware(app, config['routes.map'])
    app = SessionMiddleware(app, config)
    app = CacheMiddleware(app, config)
    app = authkit.authenticate.middleware(app, app_conf) #เพิ่มบรรทัดนี้

    if asbool(full_stack):
        # Handle Python exceptions
        app = ErrorHandler(app, global_conf, **config['pylons.errorware'])

...

แก้ development.ini:

….

full_stack = false # แก้จาะ true ให้เป็น false ซึ่งยังงงๆ อยู่ว่าทำไมต้องทำแบบนี้


beaker.session.secret = somesecret

# เพิ่มพวกข้างล่างนี้
authkit.setup.method = form, cookie
authkit.form.authenticate.user.data = username:password  # ถ้ามี username password อีกก็ใส่เข้าไปบรรทัดนี้เลย
authkit.cookie.secret = SomeSec
authkit.cookie.signoutpath = /auth/signout

import logging

from pylons import request, response, session
from pylons import tmpl_context as c
from pylons.controllers.util import abort, redirect_to

from auth2.lib.base import BaseController, render

from authkit.authorize.pylons_adaptors import authorize
from authkit.permissions import RemoteUser, ValidAuthKitUser

log = logging.getLogger(__name__)

class AuthController(BaseController):
    @authorize(ValidAuthKitUser())  # บอก pylons + authkit ว่า action นี้ต้อง signin ก่อน
    def private(self):
        return 'this is private'

เท่านี้ก็ลองเข้า http://localhost:5000/auth/private ก็จะเด้งไปหน้า login พอใส่เสร็จก็เด้งกลับมา เป็นอันใช้ได้ แต่ยัง signout ไม่ได้ มั้ง เพราะยังไม่ได้เขียนเลย.

อ้างอิง

http://pylonsbook.com/alpha1/authentication_and_authorization

One thought on “Pylons-20080827 + Authkit อย่างง่าย

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s