5

以下のリンクは、CookieAuthenticator をステートレスまたはステートフルとして使用できることを示しています。

http://silhouette.mohiva.com/docs/authenticator

しかし、以下のリンクで選択するためのオプションが表示されません。

http://silhouette.mohiva.com/v3.0/docs/config-authenticators#cookieauthenticator

以下の例の実装をコピーしました。これはステートレスですか、それともステートフルですか? ステートフルな場合、ステートレス認証を実装するにはどうすればよいですか?

https://github.com/mohiva/play-silhouette-seed

4

1 に答える 1

4

それはすべて正しいです。

CookieAuthenticator.scalagithubのソースを調べてください: https://github.com/mohiva/play-silhouette/blob/master/silhouette/app/com/mohiva/play/silhouette/impl/authenticators/CookieAuthenticator.scala

/**
 * The service that handles the cookie authenticator.
 *
 * @param settings The cookie settings.
 * @param repository The repository to persist the authenticator. Set it to None to use a stateless approach.
 * @param fingerprintGenerator The fingerprint generator implementation.
 * @param idGenerator The ID generator used to create the authenticator ID.
 * @param clock The clock implementation.
 * @param executionContext The execution context to handle the asynchronous operations.
 */
class CookieAuthenticatorService(
  settings: CookieAuthenticatorSettings,
  repository: Option[AuthenticatorRepository[CookieAuthenticator]],
  fingerprintGenerator: FingerprintGenerator,
  idGenerator: IDGenerator,
  clock: Clock)(implicit val executionContext: ExecutionContext)
  extends AuthenticatorService[CookieAuthenticator]

CookieAuthenticatorServiceしたがって、リポジトリを定義して作成するだけです。

あなたの例では、文字列を見つけることができます

new CookieAuthenticatorService(config, None, fingerprintGenerator, idGenerator, clock)

ここのrepositoryパラメータはステートレスです NoneCookieAuthenticator

于 2016-03-14T16:14:28.777 に答える