Rank 3: Container
Context:
I am attempting to integrate Kakao Login (one of the largest social login providers in South Korea) into my Flutter application using Appwrite's Generic OIDC provider. Kakao supports OpenID Connect (OIDC) standard endpoints, but has strict constraints regarding scope names.
The Problem:
- Appwrite's Generic OIDC server-side implementation enforces/appends standard scopes:
openid,profile, andemailto the authorization URL by default. - Even if I pass custom scopes from the client-side SDK (e.g.,
scopes: ['openid', 'profile_nickname', 'account_email']in Flutter'screateOAuth2Session), the Appwrite server still appends the defaultprofileandemailscopes to the request sent to Kakao. - Kakao strictly validates requested scopes. It does not recognize the standard
profileoremailscopes. Instead, it uses custom scope names:profile_nickname(orprofile_image) andaccount_email. - Because the standard
profileandemailscopes are included in the request, Kakao rejects it immediately with aninvalid_scopeerror (Error Code:KOE205), making it impossible to use the Generic OIDC adapter.
Suggested Solution:
- Provide a configuration field in the Appwrite Console under the Generic OIDC settings to customize or override the default scopes.
- Exceptional edit configuration for Kakao.
- Or, ensure that the
scopesparameter passed from the client-side SDK completely overrides (rather than appends to) the default server-side scopes (openid,profile,email) for the OIDC provider.
This will greatly improve OIDC compatibility with local identity providers like Kakao that enforce strict, non-standard scope validation.