タイトルの通りです
インストール
$ pip install responder_login
でインストールできます。
使用方法
import responder
from responder_login import LoginManager, UserMixin
api = responder.API()
lm = LoginManager(api)
のように宣言してからLoginManager.user_loader
でcallbackをデコレートして、LoginManager.login_user(user)
でログイン, LoginManager.logout_user()
でログアウト, LoginManager.current_user
でログイン中のユーザの取得などができます。そのほかにも機能がありますので、Responder-Login --- Docsをご覧ください。
使用例
import responder
from responder_login import LoginManager, UserMixin
api = responder.API()
lm = LoginManager(api)
users = []
class User(UserMixin):
id = None
name = "Anonymous"
age = 0
def __init__(self, name, age):
global users
self.name = name
self.age = age
users.append(self)
self.id = users.index(self)
def get_id(self):
return self.id
@lm.user_loader
def user_loader(user_id):
try:
return users[int(user_id)]
except IndexError:
return None
@api.route("/login/{name}/{age}")
@lm.login_prohibited
def login(req, resp, *, name, age):
user = User(name, age)
lm.login_user(user)
resp.text = f"you've logged in as User; name: {user.name}, age: {user.age}"
@api.route("/show")
def show(req, resp):
user = lm.current_user
if user.is_authenticated:
resp.text = f"you're logging in as User; name: {user.name}, age: {user.age}"
else:
resp.text = "you're not logging in"
@api.route("/logout")
@lm.login_required
def logout(req, resp):
lm.logout_user()
resp.text = "you've logged out"
if __name__ == "__main__":
api.run()
うまく動作します。
プルリクエスト、issueなどどしどしまってます!!