session = $session; $this->user_storage = $user_storage; } /** * @throws User_Not_Found_Exception */ public function generate() { $token = Hash::get_step_token(); $this->session->set( self::STEP_TOKEN_KEY, $token ); $this->user_storage->set_step_token( $token ); } /** * @return null|string */ public function get() { return $this->session->get( self::STEP_TOKEN_KEY ); } /** * @throws User_Not_Found_Exception */ public function reset() { $this->session->delete( self::STEP_TOKEN_KEY ); $this->user_storage->delete_step_token(); } }