This document explains what you have to do before integrating Kakao Login.
Tag | Description |
---|---|
Required | You must apply the settings marked with this tag before integrating Kakao Login into your service. If this tag is not attached, you can optionally apply the setting depending on the functions you want to use. |
To integrate Kakao Login into your service, you MUST:
You can additionally adopt other optional functions.
Kakao Login is an essential function to leverage user-based services such as Kakao Sync, or Kakao Talk. Refer to Kakao Login to learn more about Kakao Login.
To activate Kakao Login,
After setting consent items, you can preview the Consent screen as configured in consent items by clicking 🅒Preview the Consent screen.
If you want to integrate Kakao Login with OpenID Connect, you must also set 'State' to 'ON' under 🅑OpenID Connect Activation.
A Redirect URI is an essential factor in serving Kakao Login service because the Kakao server and a service server exchange information through the Redirect URI to proceed Kakao Login based on OAuth 2.0.
The Kakao server passes authentication information needed for a service to Redirect URI, and the service proceeds the information received through Redirect URI to makes the next request. If Redirect URI is not specified, an error occurs when logging in with Kakao.
You can set Redirect URIs in [My Application] > [Kakao Login] > [Redirect URI]. When you register Redirect URIs, you must comply with the following rules:
You MUST NOT specify parameters in Redirect URI path. If you need to keep or send specific information, use state
value by referring to Kakao Login > REST API.
To use the personal information of a user who is logged in with Kakao Account for your service, you need user's consent to access personal information and permission. When users log in with Kakao, they can choose what to provide to your service by consent item. Then, Kakao provides your service with the personal information that users agree to provide as you request Kakao APIs such as the Retrieving user information API.
You can configure consent items needed for your service under 🅐Personal Information and 🅑Permission in [My Application] > [Kakao Login] > [Consent items]. You can check how the Consent screen would look in advance by clicking 🅒Preview the Consent screen.
To enable a scope, click [Set] and then set detailed options.
🅐 Select the content type for the corresponding user information.
🅑 Provision after collecting information through Kakao Account: If you select this option, Kakao requests the user to input the data and provides it to your app when a piece of specific user information has not been saved in a user's Kakao Account. See Provision after collecting information for more details.
🅒 Purpose of consent: Specify the reason why you need to collect user data. The purpose is not displayed on the Consent screen but used for a review to grant permission.
After the settings, click [Save]. The consent items, except for the ones set as 'Not request consent', are presented to users when they log in on the Consent screen with checkboxes and phrases asking to provide their personal information. The items set as 'Required consent' are displayed as ⓐ[Required], and the items set as 'Optional consent' are displayed as ⓑ[Optional] on the Consent screen.
There are three types of consent items. When you configure consent items, you can set a consent type for each scope. Then, the consent screen is displayed differently as specified.
Type | Description |
---|---|
Required consent | Users must consent to provide the corresponding information to use your service. Kakao asks permission when a user logs in with Kakao Account through the Consent screen. NOTE: Only the profile information can be set as 'Required consent' as a default. If you apply Kakao Sync, you can set more consent items to 'Required consent'. |
Optional consent | Users can decide whether to consent to provide the corresponding information. Kakao asks consent when a user logs in with Kakao Account. Even when the user does not consent, the user can complete the login. If you use the Requesting additional consent API, you can ask consent again when the user information is needed. |
Consent during use | Kakao asks permission in the middle of using the service, instead of requesting consent when a user logs in. You can get consent to the scope set as 'Consent during use' by specifying the scope parameter through the Requesting additional consent API. Then, the Consent screen with the scope added as a [Required] is prompted when the scope is required. |
If Kakao does not retrain specific user information, the corresponding scope is not displayed on the Consent screen during Kakao Login and you cannot retrieve the user information by requesting APIs that provide user information.
If your service must obtain consent to certain user information, set its scope to 'Required consent' and select the 'Provision after collecting information through Kakao Account' option (Provision after collecting information in short). Then, Kakao asks the user to input the data through the Consent screen during the Kakao Login process, and the user must consent to provide the information to complete Kakao Login, which prevents required information from missing consent.
This option can also be applied for the scopes set as 'Optional consent' or 'Consent during use' along with the Requesting additional consent feature for the case that a user has not consented through the Consent screen when the user attempts to log in. Then, Kakao requests permission when the information is needed during the use of the service.
Here is a sample screen that requests a user to input additional information.
This option is not applicable for the following scopes:
Consent Item | Scope ID | Note |
---|---|---|
Profile Info(nickname/profile image) Nickname Profile image |
profile profile_nickname profile_image |
User's profile information is automatically input when a user logs in with Kakao Account. |
Phone number | phone_number |
Kakao provides a phone number by obtaining it from the one saved in Kakao Talk, not by collecting it separately. For users who do not use Kakao Talk, you must collect their phone numbers separately in your service if phone numbers are required. |
This table shows the scopes under 'Personal Information' in [My Application] > [Kakao Login] > [Consent Items].
You must enable each scope to use the corresponding APIs. If you want to extend its consent type for a scope, you may need to change the app settings or request additional permission.
When you get permission to set the required consent, you also get permission to set the optional consent.
Consent Item (scope ID) | API | Available consent type |
---|---|---|
Profile Info (profile) |
Retrieving user information Retrieving Kakao Talk profile |
Required consent Optional consent Consent during use |
Nickname (profile_nickname) |
Retrieving user information Retrieving Kakao Talk profile |
Required consent Optional consent Consent during use |
Profile image (profile_image) |
Retrieving user information Retrieving Kakao Talk profile |
Required consent Optional consent Consent during use |
Email (account_email) |
Retrieving user information | Optional consent Consent during use To set to 'Required consent': Biz app, Test app. |
Name | Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Gender (gender) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Age range (age_range) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Birthday (birthday) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Birthyear (birthyear) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Phone number (phone_number) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Connecting Information (account_ci) |
Retrieving user information | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information |
Friends List in Kakao Service (Including profile image, nickname, and favorites) (friends) |
Retrieve list of friends | Optional consent Consent during use Not allowed to set to 'Required consent'. IMPORTANT: Allowed to retrieve team members only. To retrieve all friends, permission is required. |
Kakao Talk Channel addition status and details (plusfriends) |
Check Kakao Talk Channel relationship | None. To set to 'Required consent': Connect app to channel. |
Shipping information (shipping_address) |
Retrieve shipping address | None. To set to 'Optional consent': Consent items for personal information To set to 'Required consent': Consent items for personal information, Test app. |
Security Event Subscription | - | None. To set to 'Optional consent': permission is required. |
If a user has not agreed to the consent item required for your service, an error occurs. In this case, request additional consent. For the consent items required for your service, you must set it to 'Required consent'.
From June 25, 2021, we provide the profile information separated as 'Nickname' and 'Profile image'. You can request consent to desired profile information by setting desired scopes respectively. If you create a new app, the separated scopes for profile information are applied to the app. If you have enabled the 'Profile Info(nickname/profile image)' scope, you can continue to use that scope. In this case, you do not need to change the app settings, and there is no change in API response. But if you want to use the new scpes in the existing app, fill out the request form. In this case, the API response may change. Refer to Notice for more details.
Consent items for personal information can only be set as [Required] or [Optional] after obtaining permission via Request for app permissions. Some items can be set after applying KakaoSync. For information on KakaoSync features and implementation, refer to the Prerequisites section.
This table shows the scopes under 'Permission' in [My Application] > [Kakao Login] > [Consent Items]. These scopes are allowed to set 'Optional consent' or 'Consent during use' only. If you set a scope to 'Optional consent', users are asked to consent to the scope when they log in. If you set it to 'Consent during use', users are asked to consent when the consent is required in the middle of using your service.
You must enable each scope to use the corresponding APIs.
Consent Item (scope ID) | API | Available consent type by default |
---|---|---|
Send message in KakaoTalk (talk_message) | Kakao Talk message | Optional consent Consent during use Not allowed to set to 'Required consent'. IMPORTANT: Allowed to send messages to team members only. To send to all Kakao Talk friends, permission is required. |
Create, retrieve, edit/delete Talk Calendar and events (talk_calendar) | Talk Calendar | Optional consent Consent during use IMPORTANT: Allowed to manage event to team members only. To use event features for all users, request permission. |
Create, retrieve, edit/delete tasks in Talk Calendar (talk_calendar_task) | Talk Calendar | Optional consent Consent during use IMPORTANT: Allowed to manage tasks to team members only. To use task features for all users, request permission. |
Login with an account that has OWNER or EDITOR role for the app, and select [Confirm qualifications] from [My application] > [Request for App Permissions]. You need to check the contents and agree.
If you request to connect to a Kakao Talk Channel from the List of app permissions in [Request for app permissions] > [App permissions], the Connectable Kakao Talk Channels will appear in the list. Select [Connect] with the desired channel to connect.
You can check the connected channels in Manage Kakao Talk Channel connection and disconnect them if necessary.
You can connect Kakao Talk Channels to your app that meet the below conditions
If you have not created any Kakao Talk Channel, create a new one as follows:
After creating an new Kakao Talk Channel, request for upgrade the channel to a Business channel. Make sure to log in to Kakao Talk Channel Admin Center with the account that has a Master role of Kakao Talk Channel to be connected to a Kakao Sync service.
For more details, refer to Creating a channel(채널 만들기) in Kakao Business.
To use Kakao Sync, you need to upgrade your Kakao Talk Channel to a Business Kakao Talk Channel ("Business Channel") by registering a business registration number. Only the Master account that creates the Kakao Talk Channel can upgrade to a Business channel.
After you request a review, it takes 3 to 5 days in business days for approval. If the information of the channel does not match the documents you submitted, or you have not submitted the required document, your request may be rejected. Refer to Business Channel Request Guide for more detailed information.
To allow users to add your Kakao Talk Channel connected to your app when logging in, you must set a primary channel as follows:
You can set only one primary channel among the connected business channels.
To change the primary channel, click [Modify] and select another business channel.
The selected primary channel is displayed on the Kakao Login Consent screen as follows.
To use the Checking Kakao Talk Channel relationship feature, you must get consent from users. To do so,
To set 'Kakao Talk Channel addition status and details' to 'Required Consent', your biz app and business channel must be connected. To see how to connect them, Kakao Sync > Connect app to channel.
To use Easy Signup, set [Status of use] to [ON] in [My Applications] > [Kakao Login] > [Simple Signup] after Set Kakao Talk Channel. When [Status of use] is set to [ON], the Kakao Login consent screen includes the terms of service and you can set the terms of service for your app.
You can activate the Simple Signup function to manage the service terms in the following conditions:
After turning Simple Signup to ON, you can add a new service term or manage the registered service term. Note that at least one service term must be registered to add or manage the service terms.
You can register a new service terms by clicking [Add Terms of Service] in the 'Simple Signup' section.
🅐 Term's title: Input the title of service terms both in Korean and English. The service terms in English are used when a language on a user device is set to English. Even though you do not have the English version of service terms, you should input at least the English title with alphabets, numbers, space, and special characters only available to type with a keyboard. (100 characters allowed) 🅑 Term's URL: Input the URL of a web page where service terms can be checked. For optional service Terms, you do not have to input URLs. 🅒 Term's condition: Select either 'Required consent item' or 'Optional consent item'. For the Required consent item, users must consent when signing up. For the Optional consent item, users can consent optionally or additionally according to services. 🅓 Term's TAG: Tags are used to check the consented status by service terms in Check the consented service terms and required to use Getting consent to desired service terms feature. You can add the tags that can be used for actual service development. For tags, you can only enter alphabets, numbers, hyphen(-), and underscore(_). It is recommended to input tags in Keyword_date, Keyword_order of service terms format.
When you register a new service term, the service term is set to inactive status by default. Thus, to use the service term in your service, you must activate the service term by clicking [Activate].
You can preview the Consent screen to be displayed in the actual service by clicking [Preview the Consent screen]. If there is any missing or incorrect information, modify the service terms.
🅐 Activate/Inactivate: Select whether to display each service term on the Simple Signup Consent screen. For the service term that you do not want to use, click [Inactivate] on the upper right corner of the service term. Conversely, click [Activate] if you want to make the previously registered service term displayed on the Consent screen. 🅑 Modify: To modify the service terms that have already been registered, click [Modify] on the upper right corner of the service term you want to modify. Only when there is a change compared to the existing registered information, the [Save] button is activated. 🅒 Change order: To change the order of the service terms displayed on the Simple Signup Consent screen, click [Change Order] on the right side of the 'Simple Signup' section, and then select a number for each service term's order. After setting the orders, click [Save].
The functions related to agreeing to, viewing, and withdrawing from the service terms provided by Kakao Sync Simple Signup are for user expression to the service, not Kakao. Therefore, the Service must recognize that the Service is solely responsible for the management and use of the app's service terms and operate it so as not to cause damage.
The service terms registered in the app must be the same as the actual service terms. If the registered service terms differ from the actual service terms or are false, the app may be restricted from using Kakao Sync.
This setting is required for the service that transfers users' personal information overseas.
According to Personal Information Protection Act, Article 39-12 (Protection of Information Transferred Overseas), if your service provides, outsource the processing of, or transfers users' personal information obtained through the Kakao APIs to other countries, you must notify users of the followings in advance and obtain user's consent to transferring personal information overseas.
Transferring personal information overseas means the following cases.
If your service corresponds to either of the cases above, you must register the information related to the transfer of personal information overseas.
After registering the information above, the 'Consent to the Transfer of Personal Information to Foreign Parties' item is included as a Required item in the Consent screen. Users can see the detailed information which is registered in [Transfer of Personal Information Overseas] by selecting [view more] and consent to the transfer of personal information overseas.
The Unlink callback is an optional function to send you a callback in the following situations:
To use this feature, you must designate a callback URL to receive unlink callbacks. Ensure that the unlink callback address only supports HTTPS over 443 port due to security issues because the request includes a Service user ID.
After setting the unlink callback, you can see the detailed callback information under 'Unlink callback settings' and 'Enabled' in 'Status' as follows:
You can 🅐delete or 🅑modify the registered unlink callback information.
You can also disable the unlink callback function for a while. To disable this function, click 🅒[Set] in 'Status' and then select the [Disable] option in the Activate Callback dialog. Only the Owner or Editor account can disable this function.
Kakao may disable the unlink callback function that your service has enabled in the following cases: - If your service does not respond to the unlink callbacks - If all callbacks are caused by the errors In either case, Kakao notifies the fact of you and yourr team members with some advice and changes its status to 'Paused'.
If you want to activate the unlink callback function, modify the way how your service implements the unlink callback by referring to the email sent from Kakao Developers, and then activate this function by selecting [Set] > [Enable].
Depending on whether to use the Unlink feature in your service, the buttons on the Manage Connected Services page are differently displayed to users. See Disconnect vs. Delete All Data.
To store user data required for your service, add a custom user property. User property refers to a function to store some of service information in the Kakao platform. Kakao does not access and store the data in the service server but provides a feature to store some of user information on the Kakao platform and retrieve the information through the Retrieving user information API as needed.
To register property keys,
🅐 Account information: Shows the ID, linked status, and linked date of the team members who are linked to your app. 🅑 Reserved property: Shows the property keys assigned by default. You cannot use the reserved property keys as a property key name. 🅒 User property: Shows the custom user property keys that you added. The property values are displayed in the column of the corresponding team member.
After May 12, 2022, Kakao Account's profile information is reflected in real time to the property keys: 'profile_image', 'thumbnail_image', and 'nickname'. Thus, you cannot update the user profile saved in a service through these property keys by calling the Storing user information API. For more details, refer to Notice. If your service needs to keep using these property keys, contact us via DevTalk.
To update the user information, call the Storing user information API by passing the added or checked property keys with the user data.
To check the updated user information, call the Retrieving user information API by referring to each development guide.
When you use a REST API, you can use a Client secret code to enhance security.
To use this feature,
client_secret
parameter.You must add the client_secret parameter if 'Client Secret' is activated on this page. Otherwise, the token is not issued from the authorization server.
We highly recommend regularly changing the Client secret code every two years or less.
To use Security event subscription, you need to set it in [My application] > [Kakao Login] > [Security Event].
Select [Set subscription] to enable the feature and set details.
🅐 Activation status: Select [Activate] to enable security event subscription. 🅑 Callback URL: Set a callback URL of your service that receives security event information. The domain for the callback supports HTTPS only. 🅒 Subscribable Events: Select Security event types of each category. ⓐ Categories: Select a desired category. Provided only to the app with permission. ⓑ Types: Select desired security event types.
Below is an example after setting.
🅐 Click to delete or modify the current settings. 🅑 Click to go to [Security Event Test Tool]. 🅒 Output the activation status and the callback URL. 🅓 Output subscribed events and categories.
This is optional function used for Logout of service and Kakao Account, an add-on feature to Kakao Logout. If you want to use this feature, go to [My Application] > [Kakao Login] > [Advanced] > [Logout Redirect URI] and set Logout Redirect URIs.
When you register Logout Redirect URIs, you must comply with the following rules:
Refer to REST API guide to see how to leverage this feature.