2016-03-14 16 views
5

Il link sottostante indica che è possibile utilizzare CookieAuthenticator come stateless o stateless.Come implementare l'autenticazione dei cookie stateless usando Play Silhouette?

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

Ma non riesco a vedere tutte le opzioni per fare la scelta al link qui sotto.

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

ho copiato l'implementazione per l'esempio che segue. È stateless o stateless? Se lo stato è come posso implementare l'autenticazione stateless?

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

risposta

4

E 'tutto corretto.

sguardo ai sorgenti CookieAuthenticator.scala sul GitHub: 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] 

quindi basta per creare CookieAuthenticatorService con il repository definito.

Nel tuo esempio, è possibile trovare una stringa

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

Il parametro repository qui è None così CookieAuthenticator è apolide.