A common practice is to pass authentication information in the SOAP headers. With SOAP::Lite, you can do this by creating SOAP::Header objects (just like SOAP::Data, but they'll be placed in the header):
my $headers = SOAP::Header
->name( 'LoginCredentials' )
->value( $username )
->value( $password )
The login credentials can then be passed along with any other arguments into whatever SOAP method is being called, and dealt with seperately.