django authtkt用于在多个django站点(一种sso auth)之间共享auth
django-authtkt的Python项目详细描述
用法
在AuthenticationMiddleware:
之前添加middlware类MIDDLEWARE_CLASSES = ( ... 'authtkt.middleware.AuthTktMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', ... )
回拨
您可以使用回调函数来填充第三方应用程序中新创建的用户。
设置:
AUTHTKT_CALLBACK = 'yourmodule:update_user'
回拨:
from sqlalchemy import engine_from_config, Table, MetaData from django.conf import settings def update_user(user): engine = engine_from_config({'sqlalchemy.url': settings.USER_DB}) metadata = MetaData(engine) users = Table('auth_user', metadata, autoload=True) record = users.select(users.c.id==user.id).execute().fetchone() for k, v in record.items(): setattr(user, str(k), v)
手动识别/忘记用户
手动识别用户(例如:设置cookie)。你需要设置一个正确的 request.user:
request.environ['authtkt.identify'](request, response)
手动忘记用户(例如:重置cookie):
request.environ['authtkt.forget'](request, response)