user_storage = $user_storage; $this->token_generator = $token_generator; } /** * @param Token $totp_token * * @throws User_Not_Found_Exception */ public function check( Token $totp_token ) { $totp_secret = new Secret( $this->user_storage->get_totp_secret() ); $valid_tokens = $this->token_generator->generate_tokens( $totp_secret ); $totp_token->match( $valid_tokens ); } }