The getPortalLoginToken method should not require a username or API key in order to be called for authentication, but SoftLayer::Client requires the use of both.
See http://sldn.softlayer.com/reference/services/SoftLayer_User_Customer/getPortalLoginToken