Skip to main content


Built-in Kakao integration.


default<P>(options): OAuthConfig< P >

Add Kakao login to your page.


Callback URL​


import Auth from "@auth/core"
import Kakao from "@auth/core/providers/kakao"

const request = new Request(origin)
const response = await Auth(request, {
providers: [Kakao({ clientId: KAKAO_CLIENT_ID, clientSecret: KAKAO_CLIENT_SECRET })],



Create a provider and a Kakao application at In the settings of the app under Kakao Login, activate web app, change consent items and configure callback URL.


By default, Auth.js assumes that the Kakao provider is based on the OAuth 2 specification.

The "Authorized redirect URIs" used when creating the credentials must include your full domain and end in the callback path. For example;

스크린샷 2023-11-28 오후 9 27 41

  • For production: https://{YOUR_DOMAIN}/api/auth/callback/kakao
  • For development: http://localhost:3000/api/auth/callback/kakao

The Kakao provider comes with a default configuration. To override the defaults for your use case, check out customizing a built-in OAuth provider.


Kakao's client key is in Summary(It is written as 요약정보 in Korean.) tab's App Keys Field
(My Application > App Settings > Summary)

스크린샷 2023-11-28 오후 9 47 17

Kakao's clientSecret key is in Security(It is written as 보안 in Korean.) tab's App Keys Field
(My Application > Product Settings > Kakao Login > Security)

스크린샷 2023-11-28 오후 9 38 25


Kakao dev console has a button at the top right to change from KR to ENG


If you think you found a bug in the default configuration, you can open an issue.

Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec, we might not pursue a resolution. You can ask for more help in Discussions.

Type parameters​

▪ P extends KakaoProfile


▪ options: OAuthUserConfig< P >


OAuthConfig< P >

KakaoProfile​ type from :


  • Record< string, any >