* Added DocType Social Login Key
WIP for https://github.com/frappe/frappe/issues/4496
added basic fields
after_insert add provider_username and provider_userid fields on User dt
on_trash deletes added fields on User dt
* Added field to store fontawesome icon for provider
* [Patch] Social Login Keys to Social Login Key
* [Patch] Social Login Keys to Social Login Key
* Social Login Key generates boilerplate
* patch fixed for social_login_refactor
* removed patch-not working
* use social login keys to initiate flow
* Login page shows Social Login Key
* show login via if base_url present
* removed boilerplate generator
* Multiple Changes
fix zxcvbn import in password_strength.py
use of child table instead of additional fields on user dt to store username and userid
* Fetched Template on Client JS
* Frappe social login template working
* Added Social Login Key Templates
* Codacy fixes and validate social login key urls
* [Patch] Social Login Keys (untested)
* [Fix] Patch refactor social login keys
* [Fix] Patch refactor_social_login_keys manually tested
* Refactor OAuth 2.0 related changes for Social Login Key
* [Fix] Patch refactor social login keys
* Test - Adding Frappe Social Login Key
* Social Login Key Tests
check added child table entry on user for provider frappe
it also checks if userid is created
* [WIP] Office 365 Social Login Key Template
* [Fix] Social Login - Redirect URL
* [Test] Single sign-on icons for added provider
* [Fix] Codacy Errors
* [Fix] Social Login Key Form JS
* Docs Added for Social Login Key
* [Fix] Patch Refactor Social Login Keys
* Handle different icon types
Handle different icon types (image, icon, emoji) with just icon field
* Move the login methods to a new py file
frappe.integrations.oauth2_logins added
copied whitelisted guest oauth2 redirect endpoints from login.py
removing the functions from login.py will break backward compatibility
* Social Login Key Form Changes
Moved Enable field to top
Fields which are not editable are collapsed
* [Fix] Codacy Errors
* Corrected Docs, sync.py
* [Docs] Adding a social login provider
* [Fix] set frappe userid from User Social Login
* [Fix] frappe userid in oauth.py
* removed icon_type
* Use frappe.utils.is_image
* Add field for client_secret in Oauth Client Doctype
* openid_profile endpoint in oauth2.py
* added stub methods for OpenID Connect in RequestValidator
* [Fix] using werkzeug url_fix on uri
* added 3 oidc methods in RequestValidator
* Added Frappe Section in Social Login Keys
Add section in `Social Login Keys` for fields `Frappe Client ID` and `Frappe Client Secret` and additional field Frappe OAuth 2 Server because github, facebook and google have fixed urls, Frappe server URL can change as per the hosting domain/server/company
* [Fix] accept code id_token param for oidc
* generate id_token jwt alg HS256
* Updates to OAuth 2 and OIDC
`OAuth Authorization Code` and `OAuth Bearer Token` DocType made RO
Delete Invalid Codes and Revoked Tokens periodically
generate and send `id_token` only if scope of token is `openid`
* [Fix] Periodically delete revoked tokens
* Social Logins untested
* Enabled Frappe social login
* [Docs] OpenID Connect and Frappe social login
* [Fix] Allow multiple scopes for OAuth 2
* [Docs] Added screenshot steps to configure openid and frappe social login
* saved doctype to solve merge conflict
* [fix] re-added client_secret after resolving merge conlict
* [Fix] frappe_userid and default scope
* OAuth 2.0 Classes Added
Added oauthlib in requirement.txt
Added class WebApplicationServer for Authorization code grant and Bearer tokens.
Added class OAuthWebRequestValidator for Validating Oauth Request for Web Application
* copied code from mnt_oauth needs review
* [New] OAuth2 Doctypes and endpoints added
Integrations > OAuth Provider Settings
Integration Broker > OAuth Bearer Token
Integration Broker > OAuth Authorization Code
Integration Broker > OAuth Client
endpoints for authorize, approve, get_token, revoke_token and test_resource
* oauth2.py: renamed skipauth to skip_auth
* [Fix] Parse URL instead of storing it in settings
* [Fix] get skip_auth from OAuth Provider Settings
* Success URL format. Failure URL added. Confirmation dialog layout changed.
* Validate access token if passed during use of REST API
* OAuth Confirmation colours fixed
* Multiple Changes
Added links for OAuth under Integrations in Module list.
Updated permissions on OAuth doctypes.
Updated layout of OAuth Client doctype.
* [Docs] Integrations > How to setup OAuth
* [Docs] Integration > Using OAuth
* [Fix] get_token endpoint must to handle POST request
* [Fix] http verbs and responses for OAuth 2.0 Endpoints
* [Fix] accept oauth2 access_token from headers
* Removed unused imports from api.py