如何使用 Play Silhouette 实现无状态 cookie 认证?
How to implement stateless cookie authentication using Play Silhouette?
下面的 link 表示您可以将 CookieAuthenticator 用作无状态或有状态。
http://silhouette.mohiva.com/docs/authenticator
但是我在下面看不到任何选择的选项link。
http://silhouette.mohiva.com/v3.0/docs/config-authenticators#cookieauthenticator
我复制了以下示例的实现。这是无状态的还是有状态的?如果它是有状态的,我该如何实现无状态身份验证?
全部正确。
查看 github 上的 CookieAuthenticator.scala
来源: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
参数是None
所以CookieAuthenticator
是无状态的。
下面的 link 表示您可以将 CookieAuthenticator 用作无状态或有状态。
http://silhouette.mohiva.com/docs/authenticator
但是我在下面看不到任何选择的选项link。
http://silhouette.mohiva.com/v3.0/docs/config-authenticators#cookieauthenticator
我复制了以下示例的实现。这是无状态的还是有状态的?如果它是有状态的,我该如何实现无状态身份验证?
全部正确。
查看 github 上的 CookieAuthenticator.scala
来源: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
参数是None
所以CookieAuthenticator
是无状态的。