- When you have users holding an account on your business server.
- When you need to know who is using your app (hence the username/password parameters).
- Two-way chat applications where both users will have a pair of credentials.
- When you need anonymous usage of your application (no fixed credentials for users).
- One to many applications (one broadcaster => N subscribers), where you need to distinguish between publishers and subscribers.