Spec - AuthProvider
This is an object that a protected source can use to identify a user.
The provider is an object with the following:
name - a label for the provider
canVerify(verificationInfo) - return true or false if this info is sufficient to id the user via this provider
async requestVerification({ verificationInfo, providerState, accountId, })
async performVerification({(providerState, verificationResponse)})
async getProviderId(verificationInfo)