hoauth2-1.16.1: example/README.org
* IDPs
- Auth0: <https://auth0.com/docs/authorization/protocols/protocol-oauth2>
- AzureAD: <https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-protocols-oauth-code>
- Douban: <http://developers.douban.com/wiki/?title=oauth2>
- DropBox: <https://www.dropbox.com/developers/reference/oauth-guide>
- Facebook: <http://developers.facebook.com/docs/facebook-login/>
- Fitbit: <http://dev.fitbit.com/docs/oauth2/>
- Github: <http://developer.github.com/v3/oauth/>
- Google: <https://developers.google.com/accounts/docs/OAuth2WebServer>
- Okta: https://developer.okta.com/docs/reference/api/oidc/
- StackExchange: <https://api.stackexchange.com/docs/authentication>
- StackExchange Apps page: <https://stackapps.com/apps/oauth>
- Weibo: <http://open.weibo.com/wiki/Oauth2>
- ZOHO: https://www.zoho.com/crm/developer/docs/api/v2/oauth-overview.html
* WIP: Linkedin
- <https://developer.linkedin.com>
* NOTES
- classes in Types.hs takes a (`IDP`) as first parameter but it is actually not used. bad pattern. how to fix it??
- refactor: `App.hs` is messy!
- It is tedious to add a new IDP (especially support OIDC)
a. creates entry in ~Key.hs~
b. creates a IDP module which mostly are boilerpate code, needs reference to OAuth2 Key object multiple times