Shotgun_api3 authentication

Hi, community!

While fiddling with shotgun_api3 I found multiple ways to authenticate a user.
Shotgun() class has arguments for a user login: login and password.
And then there is a method called Shotgun.authenticate_human_user(), which requires an initialized Shotgun instance.

What’s the point for having both of them? Init Shotgun with an API-key and than “reauth” as user? Is the authenticate_human_user() method mandatory, or can I just stick to the __init__() method?

So long DD