Flask-Auth 基本
Pluginの列挙
- DIY
- Flask-Login
- Flask-Auth
- FlaskSecurity
Flask-Login
https://blog.openshift.com/use-flask-login-to-add-user-authentication-to-your-python-application/
機能
- User session management: login, logout, "remember me"
- Independent from database selction
- Do not restrict to using username/passwd, openid or other authentication can be used.
コード
git clone https://github.com/shekhargulati/flask-login-openshift-quickstart.git
todoapp.cfgを少し弄くれば使える.
基本的使い方
基本はsqlalchemyをベースにユーザクラスを作る
- is_authenticated() , is_active(), is_anonymous() , and get_id()のメソッドは必要
class User(db.Model): __tablename__ = "users" id = db.Column('user_id',db.Integer , primary_key=True) username = db.Column('username', db.String(20), unique=True , index=True) password = db.Column('password' , db.String(10)) email = db.Column('email',db.String(50),unique=True , index=True) registered_on = db.Column('registered_on' , db.DateTime) def __init__(self , username ,password , email): self.username = username self.password = password self.email = email self.registered_on = datetime.utcnow() def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return unicode(self.id) def __repr__(self): return '<User %r>' % (self.username)
login managerを作ってappをラップ
app = Flask(__name__)
login_manager = LoginManager() # よくlm = ... とする
login_manager.init_app(app)
login view (controller)を設定
login_manager.login_view = 'login'
user_loader callback
@login_manager.user_loader def load_user(id): return User.query.get(int(id))
g 変数
- requestのライフサイクルでのグローバルスペース
from flask.ext.login import current_user @app.before_request def before_request(): g.user = current_user
URLs
- http://blog.miguelgrinberg.com/post/restful-authentication-with-flask
- https://flask-login.readthedocs.org/en/latest/
- https://pythonhosted.org/Flask-Auth/
- https://pythonhosted.org/Flask-Security/
- http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-v-user-logins
- https://blog.openshift.com/use-flask-login-to-add-user-authentication-to-your-python-application/
- https://flask-login.readthedocs.org/en/latest/