2

REST各エンドポイントを認証する必要があるプロジェクトに取り組んでいます。例は

@login_required
def get_transactions(self):
  pass

私はUser次のようなモデルを持っています

class User(UserMixin, db.Model):
    __tablename__ = 'users'
    # noinspection PyShadowingBuiltins
    uuid = Column('uuid', GUID(), default=uuid.uuid4, primary_key=True,
                  unique=True)
    email = Column('email', String, nullable=False, unique=True)
    _password = Column('password', String, nullable=False)
    created_on = Column('created_on', sa.types.DateTime(timezone=True),
                        default=datetime.utcnow(), nullable=False)
    last_login = Column('last_login', sa.types.DateTime(timezone=True),
                        onupdate=datetime.utcnow())

    def __init__(self, email, password):
        self.email = email
        self._password = hash_password(password) # hash_password does md5 of password
  • ユーザーがログインしたら、クライアント セッションにセキュリティ トークンを保存し、それ以降の各リクエストでそのトークンを取得したいと考えています。
  • 例を探しましたが、そのようなセキュリティ トークンをクライアント セッション PLUS に保存する方法がわかりませんでした
  • 今後のリクエストで、クライアント セッションからそのトークンが送信されるようにするにはどうすればよいですか。

仕組みがわかりません 助けてください

4

2 に答える 2

0

この例を見たことがありますか?http://flask.pocoo.org/docs/patterns/viewdecorators/?highlight=login_required

また、自分で書き直したくない場合は、次のようなモジュールも使用できます。

とにかく、セッションにデータを保存することに関しては、かなり簡単なはずです。それをflask.sessionに入れるだけです:

import flask
# You want to automatically generate the token and store it somewhere on the server (database for example)
flask.session['some_token'] = some_token

トークンは次のようになります。

class Session(db.Model):
    token = Column('token') # auto generated thingy
    # foreign key to user for example
    # expiration time/date
于 2013-04-13T22:17:44.320 に答える