[#62] changed raised exceptino to AuthenticationError
[#63] changed authenticate to authenticate! with exception catching