How can I add new authentication provider to strapi-users-permissions plugin in Strapi v4?

System Information
  • Strapi Version: v4

I need to add kakao as an authentication provider for social login. For that I need to:
a) add a new Grant setting to the users-permissions plugin store for kakao provider
b) extend the function in the services/providers-list.js to have the logic for the ‘kakao’ provider.

I am struggling to get this done with Strapi v4 extension model.

With the v3 version I just had copies of the necessary source code files in my extensions folder with required changes but now I have two problems:
Problem 1) When I add a new grant to the users-permissions store inside my application bootstrap() method, it gets removed on next restart by the plugin’s bootstrap code because the users-permissions bootstrap logic reads whatever is in the DB, then compares it with the hardcoded list and writes back to the store only the grants that were in the hardcoded list. So, whatever is added externally, get’s lost.

Problem 2) I don’t even know how to approach extending the code that is not exposed as a service or controller or anything really.

Any help from Strapi backend devs or anyone really will be much appreciated.