1

scala 言語を使用して playframework で Authentication を理解しようとしています。

以下のコードはどういう意味ですか、Security.username のセクション -> java.util.UUID.randomUUID().toString()

def authenticate = Action { implicit request =>
  loginForm.bindFromRequest.fold(
    formWithErrors => BadRequest(html.login(formWithErrors)),
    user => Redirect(routes.Application.index).withSession(Security.username -> java.util.UUID.randomUUID().toString())
  )
}

ユーザーがセッションで安全に独自の設定にアクセスできるようにする Web サイトを作成したいと考えています。

4

1 に答える 1

3

これは、キーと値のペアをセッションに書き込んでいることを意味します (実際には署名付き Cookie です)(「キー」->「値」はタプル (「キー」、「値」) に評価されます)。

キーとして「Security.username」が使用されます。これは、構成「session.username」が存在するかどうかを確認し、存在しない場合はデフォルトで「username」に設定されます。したがって、何も構成しない場合、キーは「ユーザー名」です。

java.util.UUID.randomUUID().toString() は一意の識別子 (ユーザー名の値) を生成します。何らかの形式のユーザー名が既にある場合は、代わりにこれを使用してください。

サーブレット (または php など) セッションとは対照的に、実行中のセッションはサーバーではなく Cookie に保存されます。したがって、string 型のキーと値のペアのみが有効で、サイズは 4k のデータに制限されます。おそらく、セッションにユーザー名のみを保存し、他のデータストア (ファイルシステムやデータベースなど) から設定をロードしたい場合があります。このルックアップを実装するときは、play のキャッシング機能を使用することを強くお勧めします。

于 2012-08-15T09:18:47.910 に答える