Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add new Kakao Provider #834

Merged
merged 26 commits into from
May 11, 2023
Merged

Conversation

esinx
Copy link
Contributor

@esinx esinx commented Nov 29, 2022

What kind of change does this PR introduce?

This PR adds Kakao(https://accounts.kakao.com/) as an external provider.

What is the current behavior?

This provider did not exist before.

What is the new behavior?

Based on Kakao developer docs(https://developers.kakao.com/), this PR creates a provider & test suite for Kakao external provider.

Additional context

Please let me know if there are any changes needed, I do acknowledge that this was once mentioned in another comment, but it seemed like the PR had been frozen since then. I wrote my own version to make sure the tests do pass and the features work properly.

@esinx esinx requested a review from a team as a code owner November 29, 2022 02:35
@esinx esinx changed the title feature: add new Kakao Provider feat:Add new Kakao Provider Nov 29, 2022
@esinx esinx changed the title feat:Add new Kakao Provider feat: Add new Kakao Provider Nov 29, 2022
Copy link
Member

@kangmingtay kangmingtay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @esinx, thanks for the PR, it would be great if you can provide a recording of some sort to show that this works (preferably via loom) and outline the steps needed to set this up. For example, it isn't immediately obvious where i should obtain the GOTRUE_EXTERNAL_KAKAO_CLIENT_ID and GOTRUE_EXTERNAL_KAKAO_SECRET from on the kakao developer portal.

api/provider/kakao.go Outdated Show resolved Hide resolved
api/provider/kakao.go Outdated Show resolved Hide resolved
api/provider/kakao.go Outdated Show resolved Hide resolved
@esinx
Copy link
Contributor Author

esinx commented Jan 6, 2023

Will post a loom within the next few days :) Thank you so much for reviewing this PR!

@esinx
Copy link
Contributor Author

esinx commented Jan 15, 2023

Here's a loom of me retrieving a new client ID & secret from the kakao developers page!
@kangmingtay @artifacts3
https://www.loom.com/share/11bc4df13df848d7b4730f5e3906ca48

@igmyung
Copy link

igmyung commented Jan 21, 2023

May I know when the kakao login feature will be available for supabase auth? I need Kakao Login for a project in progress, and I want to refer to it for my release plan.

@esinx
Copy link
Contributor Author

esinx commented Feb 9, 2023

@kangmingtay I think this PR is ready to be reviewed-- is there an update on the feedbacks you left? I just pushed a sync that applies the project organization change(folder structure change).

@igmyung
Meanwhile, you can use this docker image if you intend to use Kakao as one of your providers. The tag you are looking for is esinx/gotrue:kakao.

@kangmingtay
Copy link
Member

hi @esinx, i think this is good to go! can you please merge in the master branch to fix the failing staticcheck and we can merge it in

@kangmingtay
Copy link
Member

oh right, can you also do up some docs on how developers can use kakao as an oauth integration here (https://supabase.com/docs/guides/auth/overview#providers)? should be good as long as it's in the similar format as the rest! thanks @esinx !

@esinx
Copy link
Contributor Author

esinx commented May 11, 2023

My apologies for the delay. I just came back from my mandatory military service, and didn't have much time to go over the changes and the documentations.

@hwr12, thank you for taking the time to complete the documentation! This PR took longer than I've expected due to my unavailability, but I really do appreciate the community effort in trying to complete this PR.

Thank you @kangmingtay also for guiding us on how this PR should be made. Can't wait to see this feature make its way into supabase. Would be really amazing to have Kakao login available for all the Korean users out there.

@kangmingtay kangmingtay merged commit bafb89b into supabase:master May 11, 2023
@github-actions
Copy link
Contributor

🎉 This PR is included in version 2.67.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@hwr12
Copy link

hwr12 commented May 19, 2023

@kangmingtay
Since the Kakao Auth from mobile supports Kakao Talk App sign in, it would be nice to add support for sign in with id token with Kakao in gotrue.
Do you guys have plans for this feature or will it be accepted when someone PRs this feature?

@kangmingtay
Copy link
Member

Hi @hwr12, unfortunately not for now, the sign in with id token endpoint is still experimental but we can consider adding it in the future. We may also consider a webhook-based approach in the future which makes it easier to contribute oauth integrations to gotrue.

@hwr12
Copy link

hwr12 commented May 19, 2023

@kangmingtay
I really need this feature right now to continue using supabase as backend for my startup.
I can't think of any walk arounds of this feature lacking id token sign in method.
If PR dedicated to this feature is made, will you accept it?
If you won't, would you mind telling me how I can achieve the same feature using other methods(eg. edge functions)?

@kangmingtay
Copy link
Member

@hwr12 Can you explain why you are unable to use the signInWithOAuth() method instead?

@hwr12
Copy link

hwr12 commented May 19, 2023

@kangmingtay Becuase calling singInWithOAuth() in flutter would open up browser and makes user to manually enter username and password which can be considered bothersome compared to one click app sign in.
To reduce steps of sign in process, the app should directly interact with Kakao Talk app and retrieve identity token, and using the token to sign in or sign up to my service.

@esinx
Copy link
Contributor Author

esinx commented May 19, 2023

I've achieved such behavior through modifying the link generated by GoTrue. See https://github.com/esinx/RN-Kakao-Login-Gotrue

@hwr12
Copy link

hwr12 commented May 19, 2023

Hi @esinx !
Are you referring to this code in the below picture?
Google Chrome-2023 05 19 16 49-001178
Could you explain in detail if you don't mind?

@esinx
Copy link
Contributor Author

esinx commented May 19, 2023

@hwr12 yup you are looking at the right code, and this code will allow you to open the login page using KakaoTalk's deep link. It's just how KakaoTalk works-- the app will handle any link under the host talk-apps.kakao.com.

@hwr12
Copy link

hwr12 commented May 19, 2023

@esinx I am confused due to my lack of knowledge but after the login is handled on the Kakao Talk app, is the below code used to continue on signing in to supabase server?

Google Chrome-2023 05 19 17 07-001180

This code looks like doing it manually as I see refresh token and access token are used to set session.
If I understood correctly, the Kakao talk login handling emits refresh token and access token for supabase authentication that are used to set session manually in the app?

@hf
Copy link
Contributor

hf commented May 20, 2023

Hey everyone looking for the ID Token flow. First we need to finish #1108 and then we can add support for Kakao ID tokens.

@hwr12
Copy link

hwr12 commented May 22, 2023

Thank you @hf .
I really need this feature ASAP.
Hope to see this feature coming to supabase soon!!

hf pushed a commit to supabase/auth-js that referenced this pull request Jul 2, 2023
## What kind of change does this PR introduce?
This PR adds 'kakao' to `Provider` type.
Kakao provider was recently added to `supabase/gotrue` through this
[PR](supabase/auth#834 has also been
updated. [PR](supabase/supabase#14287))
## What is the current behavior?
IDE warns type error because there is no 'kakao' in `Provider` type.

![image](https://github.com/supabase/gotrue-js/assets/27193396/af8a4071-fc1e-4a3f-b019-3f92e49212dc)


## What is the new behavior?
'kakao' added properly in `Provider` type, so no error shown in IDE

## Additional context
Please let me know if I have to change anything to be approved. Thank
you!
@z3rosmith
Copy link

z3rosmith commented Dec 28, 2023

Hi @hf @kangmingtay, I don't mean to bother you, but is there any update on the support for Kakao ID tokens?

uxodb pushed a commit to uxodb/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

This PR adds Kakao(https://accounts.kakao.com/) as an external provider.

## What is the current behavior?

This provider did not exist before.

## What is the new behavior?

Based on Kakao developer docs(https://developers.kakao.com/), this PR
creates a provider & test suite for Kakao external provider.

## Additional context

Please let me know if there are any changes needed, I do acknowledge
that this was once mentioned in another
[comment](supabase#451 (comment)),
but it seemed like the PR had been frozen since then. I wrote my own
version to make sure the tests do pass and the features work properly.

---------

Co-authored-by: Kang Ming <[email protected]>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 13, 2024
## What kind of change does this PR introduce?

This PR adds Kakao(https://accounts.kakao.com/) as an external provider.

## What is the current behavior?

This provider did not exist before.

## What is the new behavior?

Based on Kakao developer docs(https://developers.kakao.com/), this PR
creates a provider & test suite for Kakao external provider.

## Additional context

Please let me know if there are any changes needed, I do acknowledge
that this was once mentioned in another
[comment](supabase#451 (comment)),
but it seemed like the PR had been frozen since then. I wrote my own
version to make sure the tests do pass and the features work properly.

---------

Co-authored-by: Kang Ming <[email protected]>
LashaJini pushed a commit to LashaJini/auth that referenced this pull request Nov 15, 2024
## What kind of change does this PR introduce?

This PR adds Kakao(https://accounts.kakao.com/) as an external provider.

## What is the current behavior?

This provider did not exist before.

## What is the new behavior?

Based on Kakao developer docs(https://developers.kakao.com/), this PR
creates a provider & test suite for Kakao external provider.

## Additional context

Please let me know if there are any changes needed, I do acknowledge
that this was once mentioned in another
[comment](supabase#451 (comment)),
but it seemed like the PR had been frozen since then. I wrote my own
version to make sure the tests do pass and the features work properly.

---------

Co-authored-by: Kang Ming <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants