diff --git a/docs/kratos/social-signin/98_line.mdx b/docs/kratos/social-signin/98_line.mdx new file mode 100644 index 000000000..a5e1ff61f --- /dev/null +++ b/docs/kratos/social-signin/98_line.mdx @@ -0,0 +1,152 @@ +--- +id: line +title: Add LINE as a social sign-in provider in Ory +sidebar_label: LINE +--- + +# LINE + +```mdx-code-block +import JsonnetWarning from "../../_common/jsonnetwarning.mdx" +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + + + + +Follow these steps to add LINE as a social sign-in provider to your project using the Ory Console: + +1. Go to . +2. Click the switch next to the LINE logo to start the configuration. +3. Copy the Redirect URI and save it for later use. + + + + +The default redirect URI for LINE is `https://$PROJECT_SLUG.projects.oryapis.com/self-service/methods/oidc/callback/line`. Write it down for later use. + + + +``` + +Next you will need to create a LINE application and configure it to work with Ory. Here's how you can do that: + +1. Head over to the [LINE Business Account](https://account.line.biz/signup). +2. Create a new channel [in the Developer Console](https://developers.line.biz/console/) +3. Configure the required permissions: `PROFILE`, `OPENID_CONNECT`, `OC_EMAIL`. +4. On the LINE Login tab, configure the Callback URLs. +5. On the channel page, you will find the Channel ID and Channel Secret. Copy these values and save them for later use. + +LINE is now set up! Continue with the following steps in Ory Console or Ory CLI to complete the configuration: + +````mdx-code-block + + + +1. Copy the Channel ID and Channel Secret from the LINE Developer Console and paste them into the corresponding fields in the Ory Console. +2. In the **Data Mapping** field of the form in the Ory Console, add the following Jsonnet code snippet, + which maps the desired claims to the Ory Identity schema: + + ```jsonnet + local claims = std.extVar('claims'); + + { + identity: { + traits: { + [if 'email' in claims then 'email' else null]: claims.email, + email: claims.email, + [if "name" in claims then "first_name" else null]: claims.name, + }, + }, + } + ``` + +```mdx-code-block + +``` + +10. Click **Save Configuration**. + + + +1. Create a Jsonnet code snippet to map the desired claims to the Ory Identity schema. + + ```jsonnet + local claims = std.extVar('claims'); + { + identity: { + traits: { + [if 'email' in claims then 'email' else null]: claims.email, + email: claims.email, + [if "name" in claims then "first_name" else null]: claims.name, + }, + }, + } + ``` + +```mdx-code-block + +``` + +4. Encode the Jsonnet snippet with [Base64](https://www.base64encode.org/) or host it under an URL accessible to Ory Network. + + ```shell + cat your-data-mapping.jsonnet | base64 + ``` + +5. Download the Ory Identities config from your project and save it to a file: + + ```shell + ## List all available workspaces + ory list workspaces + + ## List all available projects + ory list projects --workspace + + ## Get config + ory get identity-config --project --workspace --format yaml > identity-config-$project-id.yaml + ``` + +6. Add the social sign-in provider configuration to the downloaded config. Add the Jsonnet snippet with mappings as a Base64 + string or provide an URL to the file. + + ```yaml + selfservice: + methods: + oidc: + config: + providers: + - id: line + provider: line + auth_url: https://access.line.me/oauth2/v2.1/authorize + issuer_url: https://access.line.me + token_url: https://api.line.me/oauth2/v2.1/token + scope: + - profile + - email + - openid + client_id: .... # Replace this with the Channel ID + client_secret: .... # Replace this with the Channel Secret + mapper_url: "base64://{YOUR_BASE64_ENCODED_JSONNET_HERE}" + # Alternatively, use an URL: + # mapper_url: https://storage.googleapis.com/abc-cde-prd/9cac9717f007808bf17f22ce7f4295c739604b183f05ac4afb4 + enabled: true + ``` + +7. Update the Ory Identities configuration using the file you worked with: + + ```shell + ory update identity-config --project --workspace --file identity-config.yaml + ``` + + + +```` + +## Troubleshooting + +```mdx-code-block +import SocialSigninTroubleshooting from '../_common/social-sign-in-troubleshooting.mdx' + + +```