{"tenantId":"default","id":"default","color":{"primaryColor":"#e45c96","darkPrimaryColor":"#EC89B4","isDarkModeEnabled":true},"branding":{"favicon":"https://smyth.seo.app/seo-app-icon.png","logoUrl":"https://smyth.seo.app/seo-app-icon.png","darkLogoUrl":"https://smyth.seo.app/static/seo-app-icon.png"},"languageInfo":{"autoDetect":true,"fallbackLanguage":"en"},"termsOfUseUrl":"https://seo.app/terms/","privacyPolicyUrl":"https://seo.app/privacy/","signIn":{"methods":[{"password":true,"identifier":"email","verificationCode":true,"isPasswordPrimary":true}]},"signUp":{"verify":true,"password":true,"identifiers":["email"]},"socialSignInConnectorTargets":["google"],"signInMode":"SignInAndRegister","customCss":".UUgNaG_signature { display: none; }\nbody.desktop .C_H_Nq_main { \nwidth: 400px; \nborder-radius:50px;\nbox-shadow:0 12px 40px rgba(0,0,0,0.12);\n}\n.logto_main-content button {\nborder-radius:50px !important;\n}\nform div {\n  border:0px !important;\n}\ndiv input[type=\"email\"] {\nborder-radius:50px !important;\nborder:1px solid #c4c4c4;\n}\n\n","customContent":{},"socialConnectors":[{"id":"kr45cpz5f4sy7nn77yn7g","target":"google","platform":"Universal","name":{"en":"Google","zh-CN":"Google","tr-TR":"Google","ko":"Google"},"logo":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy41MiAxMi4yNzI5QzIzLjUyIDExLjQyMiAyMy40NDM2IDEwLjYwMzggMjMuMzAxOCA5LjgxODM2SDEyVjE0LjQ2MDJIMTguNDU4MkMxOC4xOCAxNS45NjAyIDE3LjMzNDUgMTcuMjMxMSAxNi4wNjM2IDE4LjA4MlYyMS4wOTI5SDE5Ljk0MThDMjIuMjEwOSAxOS4wMDM4IDIzLjUyIDE1LjkyNzUgMjMuNTIgMTIuMjcyOVoiIGZpbGw9IiM0Mjg1RjQiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAyMy45OTk5QzE1LjI0IDIzLjk5OTkgMTcuOTU2NCAyMi45MjU0IDE5Ljk0MTggMjEuMDkyNkwxNi4wNjM2IDE4LjA4MTdDMTQuOTg5MSAxOC44MDE3IDEzLjYxNDUgMTkuMjI3MiAxMiAxOS4yMjcyQzguODc0NTUgMTkuMjI3MiA2LjIyOTA5IDE3LjExNjMgNS4yODU0NiAxNC4yNzk5SDEuMjc2MzdWMTcuMzg5QzMuMjUwOTEgMjEuMzEwOCA3LjMwOTA5IDIzLjk5OTkgMTIgMjMuOTk5OVoiIGZpbGw9IiMzNEE4NTMiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjI4NTQ1IDE0LjI3OThDNS4wNDU0NSAxMy41NTk4IDQuOTA5MDkgMTIuNzkwNyA0LjkwOTA5IDExLjk5OThDNC45MDkwOSAxMS4yMDg5IDUuMDQ1NDUgMTAuNDM5OCA1LjI4NTQ1IDkuNzE5ODFWNi42MTA3MkgxLjI3NjM2QzAuNDYzNjM2IDguMjMwNzIgMCAxMC4wNjM0IDAgMTEuOTk5OEMwIDEzLjkzNjIgMC40NjM2MzYgMTUuNzY4OSAxLjI3NjM2IDE3LjM4ODlMNS4yODU0NSAxNC4yNzk4WiIgZmlsbD0iI0ZCQkMwNSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEyIDQuNzcyNzNDMTMuNzYxOCA0Ljc3MjczIDE1LjM0MzYgNS4zNzgxOCAxNi41ODczIDYuNTY3MjdMMjAuMDI5MSAzLjEyNTQ1QzE3Ljk1MDkgMS4xODkwOSAxNS4yMzQ1IDAgMTIgMEM3LjMwOTA5IDAgMy4yNTA5MSAyLjY4OTA5IDEuMjc2MzcgNi42MTA5MUw1LjI4NTQ2IDkuNzJDNi4yMjkwOSA2Ljg4MzY0IDguODc0NTUgNC43NzI3MyAxMiA0Ljc3MjczWiIgZmlsbD0iI0VBNDMzNSIvPgo8L3N2Zz4K","logoDark":null,"description":{"en":"Google is a principal search engine technology and email service provider.","zh-CN":"Google 是全球性的搜索引擎和邮件服务提供商。","tr-TR":"Google, en büyük arama motoru teknolojisi ve e-posta servis sağlayıcısıdır.","ko":"Google은 가장 큰 검색 엔진 기술과 이메일 서비스 제공자입니다."},"readme":"# Google connector\n\nThe Google connector provides a succinct way for your application to use Google’s OAuth 2.0 authentication system.\n\n**Table of contents**\n- [Google connector](#google-connector)\n  - [Set up a project in the Google API Console](#set-up-a-project-in-the-google-api-console)\n  - [Configure your consent screen](#configure-your-consent-screen)\n    - [Configure and register your application](#configure-and-register-your-application)\n    - [Edit app registration](#edit-app-registration)\n      - [Config OAuth consent screen](#config-oauth-consent-screen)\n      - [Config scopes](#config-scopes)\n      - [Add test users (External user type only)](#add-test-users-external-user-type-only)\n  - [Obtain OAuth 2.0 credentials](#obtain-oauth-20-credentials)\n  - [Configure your connector](#configure-your-connector)\n    - [Config types](#config-types)\n  - [References](#references)\n\n## Set up a project in the Google API Console\n\n- Visit the [Google API Console](https://console.developers.google.com) and sign in with your Google account.\n- Click the **Select a project** button on the top menu bar, and click the **New Project** button to create a project.\n- In your newly created project, click the **APIs & Services** to enter the **APIs & Services** menu.\n\n## Configure your consent screen\n\n### Configure and register your application\n\n- On the left **APIs & Services** menu, click the **OAuth consent screen** button.\n- Choose the **User Type** you want, and click the **Create** button. (Note: If you select **External** as your **User Type**, you will need to add test users later.)\n\nNow you will be on the **Edit app registration** page.\n\n### Edit app registration\n\n#### Config OAuth consent screen\n\n- Follow the instructions to fill out the **OAuth consent screen** form.\n- Click **SAVE AND CONTINUE** to continue.\n\n#### Config scopes\n\n- Click **ADD OR REMOVE SCOPES** and select `../auth/userinfo.email`, `../auth/userinfo.profile` and `openid` in the popup drawer, and click **UPDATE** to finish. It is recommended that you consider adding all the scopes you may use, otherwise some scopes you added in the configuration may not work.\n- Fill out the form as you need.\n- Click **SAVE AND CONTINUE** to continue.\n\n#### Add test users (External user type only)\n\n- Click **ADD USERS** and add test users to allow these users to access your application while testing.\n- Click **SAVE AND CONTINUE** to continue.\n\nNow you should have the Google OAuth 2.0 consent screen configured.\n\n## Obtain OAuth 2.0 credentials\n\n- On the left **APIs & Services** menu, click the **Credentials** button.\n- On the **Credentials** page, click the **+ CREATE CREDENTIALS** button on the top menu bar, and select **OAuth client ID**.\n- On the **Create OAuth client ID** page, select **Web application** as the application type.\n- Fill out the basic information for your application.\n- Click **+ Add URI** to add an authorized domain to the **Authorized JavaScript origins** section. This is the domain that your logto authorization page will be served from. In our case, this will be `${your_logto_origin}`. e.g.`https://logto.dev`.\n- Click **+ Add URI** in the ****Authorized redirect URIs**** section to set up the ****Authorized redirect URIs****, which redirect the user to the application after logging in. In our case, this will be `${your_logto_endpoint}/callback/${connector_id}`. e.g. `https://logto.dev/callback/${connector_id}`. The `connector_id` can be found on the top bar of the Logto Admin Console connector details page.\n- Click **Create** to finish and then you will get the **Client ID** and **Client Secret**.\n\n## Configure your connector\n\nFill out the `clientId` and `clientSecret` field with _Client ID_ and _Client Secret_ you've got from OAuth app detail pages mentioned in the previous section.\n\n`scope` is a space-delimited list of [scopes](https://developers.google.com/identity/protocols/oauth2/scopes). If not provided, scope defaults to be `openid profile email`.\n\n### Config types\n\n| Name         | Type   |\n|--------------|--------|\n| clientId     | string |\n| clientSecret | string |\n| scope        | string |\n\n## References\n* [Google Identity: Setting up OAuth 2.0](https://developers.google.com/identity/protocols/oauth2/openid-connect#appsetup)\n","formItems":[{"key":"clientId","type":"Text","label":"Client ID","required":true,"placeholder":"<client-id>"},{"key":"clientSecret","type":"Text","label":"Client Secret","required":true,"placeholder":"<client-secret>"},{"key":"scope","type":"Text","label":"Scope","required":false,"placeholder":"<scope>","description":"The `scope` determines permissions granted by the user's authorization. If you are not sure what to enter, do not worry, just leave it blank."}]}],"forgotPassword":{"phone":false,"email":true}}