FEATURE: Allow users to sign in using LinkedIn OpenID Connect (#26281)

LinkedIn has grandfathered its old OAuth2 provider. This can only be used by existing apps. New apps have to use the new OIDC provider.

This PR adds a linkedin_oidc provider to core. This will exist alongside the discourse-linkedin-auth plugin, which will be kept for those still using the deprecated provider.
This commit is contained in:
Ted Johansson
2024-04-19 18:47:30 +08:00
committed by GitHub
parent 7180da1b1c
commit 9e31135eca
10 changed files with 207 additions and 0 deletions

View File

@ -0,0 +1,23 @@
# frozen_string_literal: true
class LinkedinOidcCredentialsValidator
def initialize(opts = {})
@opts = opts
end
def valid_value?(val)
return true if val == "f"
return false if credentials_missing?
true
end
def error_message
I18n.t("site_settings.errors.linkedin_oidc_credentials") if credentials_missing?
end
private
def credentials_missing?
SiteSetting.linkedin_oidc_client_id.blank? || SiteSetting.linkedin_oidc_client_secret.blank?
end
end