HEX
Server: LiteSpeed
System: Linux d8 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: wbwebdes (3015)
PHP: 8.1.31
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/wbwebdes/imap/wb-cloud.nl/login/Maildir/new/1777542197.M96689P544216.d8,S=42926,W=43769
Return-Path: <[email protected]>
Delivered-To: [email protected]
Received: from d8.my-control-panel.com
	by d8.my-control-panel.com with LMTP
	id mY06NjQk82nYTQgAeIxEMQ
	(envelope-from <[email protected]>)
	for <[email protected]>; Thu, 30 Apr 2026 11:43:16 +0200
Return-path: <[email protected]>
Envelope-to: [email protected]
Delivery-date: Thu, 30 Apr 2026 11:43:17 +0200
Received: from o1.community.logto.io ([149.72.1.199])
	by d8.my-control-panel.com with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <[email protected]>)
	id 1wINvQ-00000002Lz4-1AD7
	for [email protected];
	Thu, 30 Apr 2026 11:43:16 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=logto.io;
	h=content-type:date:from:mime-version:subject:reply-to:to:
	list-unsubscribe:list-unsubscribe-post:cc:content-type:date:from:subject:to;
	s=s1; t=1777542194; bh=ktjDaXQgYA9T46qt4Q0wUIkHqv6BMIcAxkhWjkKtpVY=;
	b=S2UEBl9vlZXJorBFMP4dMzPzJOn6fMqJ3E9MhqjzTCtNWGpa/bzupH/3slLX/0zeo76Y
	W5uNf+MT8Ce6Pi+HU7/G9UyimU9Z6wQk6Eg/8A64EMLJ3PnSUbkiKrFNcDk+dNsVYlLPJB
	yG2qv9p7E9V/vuL6jbZjHHy4+p8TIH0sL7KZIuLFnsKWMEGb9V506yDpqE1qy4Re0z0rP+
	0zdzdISF00nk6teSucAgj74isUpGE/RzWwtLVKJxwqrBp9KBhqfRYgWBe3gkyRLdDcSn0m
	stxnUMVPeRuoePt+4uvZdjhQqCq020sA4Jdrzm7Qqugrm786diMtEGPoRBsAWhrQ==
Received: by recvd-564b8fc7cc-vphgx with SMTP id recvd-564b8fc7cc-vphgx-1-69F32431-45
	2026-04-30 09:43:13.770522582 +0000 UTC m=+130280.339640900
Received: from MzMwMTQ5MDM (unknown)
	by geopod-ismtpd-57 (SG) with HTTP
	id JIVK5qk4Tyy8qP0ke1KpfA
	Thu, 30 Apr 2026 09:43:13.751 +0000 (UTC)
Content-Type: multipart/alternative; boundary=abf419b9d8e916bdac4d6a1dcd032f96365d6aeb77ce38e4cae02e2437f5
Date: Thu, 30 Apr 2026 09:43:14 +0000 (UTC)
From: Logto Community <[email protected]>
Mime-Version: 1.0
Message-ID: <JIVK5qk4Tyy8qP0ke1KpfA@geopod-ismtpd-57>
Subject: Logto product updates
Reply-To: [email protected]
X-SG-EID: 
 =?us-ascii?Q?u001=2EjjL8vHqOsiBdewZBGr1z6A1Qoh7YbxJtoKO9k4znS7mv3XnW1JP1B2Itn?=
 =?us-ascii?Q?nJR9oER4VFjBfP3xx7hOIwffZu1K=2FYObyjB5azZ?=
 =?us-ascii?Q?GAs0MpmuB2Ph=2F1XLka71cm5qH9vRjQ=2FPFrhsSLj?=
 =?us-ascii?Q?gEwLxqm7mrhCokYlnLtresj+ijwCS+sR5kAJIXl?=
 =?us-ascii?Q?RFyRnIPacGBaoRDSxcFYbzMF6+aWIVdpipHSJfJ?=
 =?us-ascii?Q?h6ALpjmxBTkpsEW8aO+yCJOLmZ1wtTvKvEdIOny?= =?us-ascii?Q?B4CG?=
X-SG-ID: 
 =?us-ascii?Q?u001=2EXwhBPNhCejkv4+fVosb2QVfR16Qxp9CrA7PjDe5zzeI=2F0IZCBsPXtgHbA?=
 =?us-ascii?Q?oGIj+Rs6OlRm=2FcaEsw=2FcuQFYvtovQxG2Eq1SU7B?=
 =?us-ascii?Q?65rZKu5ZeoNq8Ti1S9MX+R5OO9Fx46CNobK=2FWRb?=
 =?us-ascii?Q?IwerM9fT+sZ6D7hgD7PndPf76nFFLQN9YLp0PqZ?=
 =?us-ascii?Q?n4udxAlIcllR0NAxgL+ySAo4dCDA+6hOp6ft7gJ?=
 =?us-ascii?Q?QZEpVxlbQ160oFmHEKt8Rfz9aK7RB3SUFLnEHaP?=
 =?us-ascii?Q?eUXsdzqc3Vu3MIzYyylgvNK0Z31+BsO8C+s4wmC?=
 =?us-ascii?Q?3MHhiHi2hQUkAYdYKfQxF6Nj8x14ipEGY4vsgJ0?=
 =?us-ascii?Q?SuE2nZ8qMdYXmVhEoWxIBEaYtvOqEgW7UM3Epna?=
 =?us-ascii?Q?SsCME7nHKyGgXJkxD5wEHwzaRaTIc9OcjTEqiSR?=
 =?us-ascii?Q?9McJcPklWE59u8bRv8=2FD6fUaJ8LHpM0c7MLlrzK?=
 =?us-ascii?Q?7ucTJEOW80GqLmrn5oedSFL+A1bw4JoRedTaQK3?=
 =?us-ascii?Q?meUG55aO2Z=2FwMGTR1ZHBHg0gENsTw+dhyzZV9Rk?=
 =?us-ascii?Q?BNHokIFlTUCgVpe5tQEcfxRShe4zXIkw3F6Bcmz?=
 =?us-ascii?Q?+BBAb7TsGa2MwxcwCORnCfDotgTmESl3bfuQeO8?=
 =?us-ascii?Q?imKYnV6b3V8VBKakwKx875288I9Q6pI7Dh4qJEQ?=
 =?us-ascii?Q?3A3eQcEU7vRl8IFWaYYnS4HJPt9OF=2FgKteN79OP?=
 =?us-ascii?Q?kjKpD+kXuNW4nXwPv7f4Pes5t2ZSDohsyr2f75b?=
 =?us-ascii?Q?Cus4FA=3D=3D?=
To: login <[email protected]>
X-Entity-ID: u001.x7c0Lbg57YC7swm5PrPqZQ==
List-Unsubscribe: 
 =?us-ascii?Q?=3Chttps=3A=2F=2Furl6610=2Elogto=2Eio=2Flu=2Funsubscribe=3Foc=3Du001=2E4ORMigUHZdDR9?=
 =?us-ascii?Q?zo2eVdAjIX1Q4J7vkfe7dcA5iT4wXMOO0jKtHua?=
 =?us-ascii?Q?5c1bmG1MnRVy63EkAU5CsBCVv8g2dcvEp0sAtWb?=
 =?us-ascii?Q?HrMRclPOXuXt4B8qFQfGU8E1E=5FOkMwwYzPmzPoO?=
 =?us-ascii?Q?OCaBKHRl2OB3WGcigSV-2aPhP=5FY5aEymd0bKcXl?=
 =?us-ascii?Q?JiYIVlgZiZLRfYZHoN9wwt8SbZF6Js1PHNgA5qV?=
 =?us-ascii?Q?st3gIVcFmybAmQy=5F8ubEV6i5VcxGo=5FMD6-HHUqj?=
 =?us-ascii?Q?54k-uBokT93UwpvJy2PTQC05AJvt2H-N02FZrAF?=
 =?us-ascii?Q?hJfkVBTuXM0B=5FtW4wBOc9B2xSQ2TDcrzgCEXxDo?=
 =?us-ascii?Q?oVmDz7YH7pgilw3J=5FiOZHNXCBq9Jf08DHBUl=5F4b?=
 =?us-ascii?Q?cbeF8bWHowGDzjlsj-Vocs3DWZ8ipmLKy33ZODj?=
 =?us-ascii?Q?xnx=5FMqS83ND-QSky1YShtwevpAwwM=5FevZK3gafM?=
 =?us-ascii?Q?v2krCa8oLbcengweESlW9zSLK-ZWeXRPD-rQhk8?=
 =?us-ascii?Q?Nt96xiBrTiEiBxTNjmpZbvziME77io-03qfZm8S?=
 =?us-ascii?Q?KmNyjCvQ9G9sFkn3mvPlNoxJihp4PJO0VHVT4Pj?=
 =?us-ascii?Q?F9RajfRvvF4kL7r0MzC8=5FrQmkMdoKa6yyQ4BMld?=
 =?us-ascii?Q?i3rToPgZDCYAyo-1JgfCsbLOsIAFVh-PBASas0L?=
 =?us-ascii?Q?EFnWUfIeAgU3y1wR15Z2uUsJW6DipU-OtMO-ssp?=
 =?us-ascii?Q?qGpol=5FMRKNL9A0HJwR2T7beONIfOhLPFR0PqDfQ?=
 =?us-ascii?Q?tTxHeSY-XGCNAGkKW8dBlQ7r3fessqTDKhstLDE?=
 =?us-ascii?Q?yZoLRUag4mBBs9pqxMQb7wjo3Xb43aoKWLdLDZs?=
 =?us-ascii?Q?5pW=5FE7T4QFdrMHVlXpIms5g-BN63ngunNl5TNfd?=
 =?us-ascii?Q?GqeXCnTiWe9r--6v37GSqfdwGyhxiG8dG34xLyu?=
 =?us-ascii?Q?Z3rXhnLaEcI98iS6z4S9pluXzj5dX24h7lXM3rC?=
 =?us-ascii?Q?ql=5FzBCCDUZbslrBq9i3s4gNbou64OYY2xNFNEUy?=
 =?us-ascii?Q?1Bu9n6=5FO8VKtcYHmlhvtTgdKba=5FZeGWY5I0ZQ90?=
 =?us-ascii?Q?-nTIPNQEVd0qyvxkcsrXvxwqXorMRJc483gcD-y?=
 =?us-ascii?Q?dUPyT68xxZjPLOI334crXvnT4=5FAjIxpoBT7vueN?=
 =?us-ascii?Q?uPGGg1dpcQ4SVgn7BV9M-KefL2bVvk8O4D=5FawdD?=
 =?us-ascii?Q?FcdIxclvfK4cjufx=5F6SqmZlxAA0AA7ZJ5oItseS?=
 =?us-ascii?Q?T9sFXpxdd-vMGEZL5DJO7XUv-5O7s4Lu7PT7bkK?=
 =?us-ascii?Q?sm-5tMysmTuqDV4j5TJUxUrbO8zhOl7jLctFzPU?=
 =?us-ascii?Q?lYsfFaJ=5Fd=5FCs3xOw7oRBMKBQrrP64bheUHgpb2V?=
 =?us-ascii?Q?w5qb70T47AXE4XxJNsG6KcjKqG9W4949mc3uAEA?=
 =?us-ascii?Q?qqvV=5FL6auXkUx6FnW=5F7XjkIAjEwPeMqw=5FXYgZG3?=
 =?us-ascii?Q?UDanZNBUjPwzqqbs4Le6qFvAgczBxTXwpG8HvtW?=
 =?us-ascii?Q?eDnBBn-h9MOpCn3Fvf=5Fgu3rs0uTELz0VoVfUabJ?=
 =?us-ascii?Q?Uw5LwW12hr9dB0x2FbnQMPTF-PFjib0Zdv8xgUW?=
 =?us-ascii?Q?mQixTy4mNpkuXrb6cXXdItcfStwNNW4MvXxhJRt?=
 =?us-ascii?Q?phcGsDjs3o0N0amjVDrjvd9=5F-AG35yGXdRvAjX1?=
 =?us-ascii?Q?ORvn9kkm58M=5FtZVf6=5FqYDAu-Fj51u5ejbg3ze8S?=
 =?us-ascii?Q?hQ5i5DXrW4gqXLEW77-KlyvCmLWy7HXFzwTQji5?=
 =?us-ascii?Q?DeFgOaRA=5FkHe3MShRqvzNj1TLQ05Be8=3E=2C=3Cmailt?=
 =?us-ascii?Q?o=3Aunsubscribe=40em1715=2Elogto=2Eio=3Fsubject=3D3?=
 =?us-ascii?Q?3014903=2EhfKg5LfukfV-qhNwVJJIDh5Xl68fHcU?=
 =?us-ascii?Q?PcFVbGsiR2E9oMDAwdTAwMFmuUTcPyjGR5uW2C-?=
 =?us-ascii?Q?Tgw3V2vqAJDYsGlzUKnGEHzsVFalwWR=5FGadQlh=5F?=
 =?us-ascii?Q?9MaovNUeUHcXVNRXlLmlrv8jWdhw0Ovzk1xupEW?=
 =?us-ascii?Q?T1wbeagJ8aiCMDMZt6c5jQ9Z9J-7KVLiow=3D=3D=2EuU?=
 =?us-ascii?Q?TEN9OgKMi5nffL2OcwVviCpQm40ifhCHUySekzY?=
 =?us-ascii?Q?W9oMDAwdTAwMB3hd2wW1Urtva1uXTgux552=5FU3w?=
 =?us-ascii?Q?lis68tzLhk3Mt6MUnkTxYmS0-rq=5FrwbqignCQZh?=
 =?us-ascii?Q?dh5klglUU0xilHlf7jBoKmSl7xvPm=5F=5F6iK4GsO=5F?=
 =?us-ascii?Q?f2Ju69B2O=5FKFVw2PTJzbsKkCnbtaM1lAk0iwUgG?=
 =?us-ascii?Q?bTWW4D=5FfFuQzIOYXIYRPFPQ61=5FLZ4TFAyakeU6g?=
 =?us-ascii?Q?M28K8SYiFA0B9pRmfUu5Bus6K1tBe=5FtrVPr2EO7?=
 =?us-ascii?Q?d6MX7RyAqG9eRNi9b90ZGGw1izbRhfqeRTk6QOC?=
 =?us-ascii?Q?rK8WdUHAi3i6dQABDLvcT81GWgEfwp-BI5XXbEQ?=
 =?us-ascii?Q?9dfgpaut9-plXxNuLImzqKG-OK0UFMZJU0Y2iiy?=
 =?us-ascii?Q?f08YIhA8mQc6E8=5FfxUHkPWOjwGcj0zMXY14Xj2W?=
 =?us-ascii?Q?srbOTb66244Qau39Z1HnHcZ4QvuE6Y9xfPCxnvu?=
 =?us-ascii?Q?LvJXgD2gIdyKjx09c7LuO7H6oKpQHIGXJN4do61?=
 =?us-ascii?Q?sQu3Qt9NBvBvPhmThp7OcO4su-znAGtRLHKhDSA?=
 =?us-ascii?Q?FvhQmq4EaJAdmZiv-8E6Zj0uIpHZL2AOW2=5FJC3g?=
 =?us-ascii?Q?QFOur55bGy2OzenMklOeNEDnnnHTVpBsTV2oJMH?=
 =?us-ascii?Q?V8Wph8kZWDopdBdjTLuXwrn948NcHhJFzaeDDqn?=
 =?us-ascii?Q?3zTWikivXJ6L=5FKtFPEtv6Ye7yLv7gJbB0RqLhlN?=
 =?us-ascii?Q?UbExhLN08KdN1Uvmgfphg0QJhyU4WB7iCLLLvEy?=
 =?us-ascii?Q?l9hCZGtSHkgokp1t5v=5F5eHndMRVCcK7zVSstVQl?=
 =?us-ascii?Q?NIlQA89tfKfqzwxpJ6HGJCol66pntP2UVCZjpIZ?=
 =?us-ascii?Q?-QBJvnAQKID2iyYwiZHYdC1VymMCpF4wpIaWOrH?=
 =?us-ascii?Q?6JXCacU187mh0X1eSLx6c8WZDu9Y=5FugE=5FVaXB1c?=
 =?us-ascii?Q?PAwctjdIjcvKMJ=5Fqtx6l1Jb9FFQ0hIKApAhZ5-p?=
 =?us-ascii?Q?2RXxOKqhwSDmzan08nBDwOCBSMUH36icU=3D=3E?=
List-Unsubscribe-Post: List-Unsubscribe=One-Click

--abf419b9d8e916bdac4d6a1dcd032f96365d6aeb77ce38e4cae02e2437f5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8
Mime-Version: 1.0

Logto product updates
=F0=9F=9A=80 Key rotation grace periods, safer custom JWT handling, Account=
 Center security settings, WhatsApp connector, and security fixes.
=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=
=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=
=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=
=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=
=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=
=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=
=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=
=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=
=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=
=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=
=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=
=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=
=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=
=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=
=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=
=EF=BB=BF

Hi login,

We're excited to share the latest Logto updates, including smoother private=
 signing key rotation, safer custom JWT script handling, a new Account Cent=
er security page, WhatsApp verification through Meta Cloud API, and several=
 security and compatibility improvements.

Private signing key rotation grace period
-----------------------------------------

Logto now supports a grace period when rotating private signing keys, givin=
g clients time to refresh cached JWKS before the new key becomes active.

* Configure it with the PRIVATE_KEY_ROTATION_GRACE_PERIOD environment varia=
ble or the --gracePeriod CLI option.
* During the grace period, the new signing key is marked as *Next* while th=
e existing key remains *Current*.
* After the grace period ends, the new key becomes *Current* and the old ke=
y is marked as *Previous*.

This helps avoid authentication failures caused by stale JWKS caches. Learn=
 more in the documentation ( https://docs.logto.io/logto-oss/using-cli/rota=
te-signing-keys ).

Safer custom JWT script error handling
--------------------------------------

Custom JWT scripts for access token and client credentials flows can now be=
 configured to block token issuance when script execution fails.

* api.denyAccess() is preserved as an access_denied response.
* Other blocking-mode failures return localized invalid_request responses.
* Console includes a dedicated *Error handling* tab for configuring the beh=
avior.
* Newly created scripts default to blocking issuance on error, while existi=
ng scripts keep the legacy disabled behavior when no value has been saved.

This gives teams control over whether token customization should fail open =
or fail closed based on their security requirements.

Account Center security page
----------------------------

The out-of-the-box Account Center now includes a security page at /account/=
security , so end users can manage key account protection settings in one p=
lace.

* Link and unlink social accounts.
* Manage MFA 2-step verification.
* Delete their account when the flow is enabled.

Console also now exposes the delete-account URL field in Account Center set=
tings and surfaces Account Center and social prebuilt UI entries.

WhatsApp connector via Meta Cloud API
-------------------------------------

A new WhatsApp connector is available for sending verification messages thr=
ough the official Meta Cloud API, enabling WhatsApp-based SMS and verificat=
ion-code delivery scenarios.

Organization assignment API responses
-------------------------------------

Organization user and role assignment APIs now return response bodies, maki=
ng integration flows easier to confirm programmatically.

* POST /organizations/:id/users returns { userIds: string[] }.
* POST /organizations/:id/users/:userId/roles returns { organizationRoleIds=
: string[] } with the final deduplicated role IDs assigned to the user.

Security and stability improvements
-----------------------------------

* *Forgot-password enumeration protection:* Forgot-password verification no=
w returns a unified verification_code.code_mismatch error to avoid exposing=
 whether an email or phone number exists.
* *Social and SSO redirects in in-app browsers:* Logto now stores a tempora=
ry redirect context fallback in localStorage when needed, improving reliabi=
lity in browsers such as Instagram, Facebook, and LINE.
* *Verification code connector request IP:* Connectors now receive the corr=
ect request IP when sending verification codes.
* *Console theme token:* Console themes now include the missing --color-ove=
rlay-primary-subtle token for both light and dark modes.

These updates continue to improve Logto's security, reliability, and develo=
per experience across production authentication flows.

Try these new features now ( https://cloud.logto.io/?utm_source=3Demail&utm=
_medium=3Dproduct-update )

As always, we welcome your feedback and suggestions. Feel free to reach out=
 if you have any questions or need assistance.

Logto ( https://logto.io/?utm_source=3Demail_footer&utm_medium=3Demail&utm_=
content=3Dfooter_brand_link ) : The better auth and identity infrastructure=
.

( https://discord.gg/TYN6pbRqvp ) ( https://github.com/logto-io ) ( https:/=
/twitter.com/logto_io ) ( [email protected] )

=C2=A9 Silverhand, Inc., 2810 North Church Street, Wilmington, DE 19802

Unsubscribe ( https://url6610.logto.io/asm/unsubscribe/?user_id=3D33014903&=
data=3Da6lHcZzKEWFyGJfsWBXa-Om_Bc9002MI5WEYDWf3qldoMDAwdTAwMFLYL0Vf7ALeVCGl=
mjwVxNxGL2Qwc4a7y0if9QNRCNfMouCMddYz9b34WAZaCvQwlODoKTQGPHBcX4ph8NsDIEajRp-=
7sP8R2pEQCF8KmxG_jkUzKVCK6BnGzFb_HQySlz7IVgfL5-tJD_2Uy4SCKoqVeLCT51v8PReOsh=
wZ-SSo-58ebfO3nfoN5ann-3cD5dtncIdU0tvwru1iwvZ7m28d7e0XlWj0kN4Xsk5Hd1T2dN_OV=
f-pslp4G7MZt59eD37Iro6q9RL_hCMfV6UurM9niSl1_U3uk_xrZnkqoqgatpXVeoOSYBNo-37f=
nPUiMCTZWaGS9sst3tWjpkToGDR_7KDJXGs5vKymh3YZpWNWy17u11dTbyH_3tJ208i5BlCaEqF=
idUyR9FsOrV7RhZ3KDArgIP2iRD-K7l47cav4t9rH-GuUDXEZUx_m-Wv_izjfoZrODG4EnTtWsB=
Kv6qKfaC28wbBxj45GKbliXmz76XW-_vqRx-peS5WbvMMkGn2JgukY0Bx12UVZL8YvVFQ77woJJ=
KRfO6XfKr2bzzU2iE4Z4q4pTpCxQlGNZMz-P2B52cVqBLbt9Tvx0MQmzACkb0hZxS1XBgoKQQrg=
uTLCVD6IYDBIgf4SuUsdRBYyPFbzbKnX7Qo0ldtfovmNQGTHsU0uP2blbbYc65ZmiKMc5zWCMU-=
jgMK8-5GQ1n4BznDwnAypufNyJ38LPMjNzUiz7xf9PSgmBdhGlqqfsyKlASTThNdW2RTu5kQp8i=
QkXAaEZG_mIrKhdFCzpHlskzsS3MN2ceEgkNrRLm5AI6paxWevoAzJ3zZMuXX1oK1zF7WDfCw0D=
WHiI4Mh2CVkYYN6ABn1Q_EHjbwLBRJ22OM_6mmC_VbEr3GuRmbtcZs4McDGNxuVY9fGNi8raBEf=
_VnWRRf9CgyKVuk8TCcTCst6Ouin5AFDpM5YGm982kKruBpOiwMMpnqxtMvgtGqDibbTJe7sRHf=
FkW62Tq6pkUwJsxnjWHfvRQ6kJp8zEqvRISvMyzryp3GZuhzDFQA8kXu6moiizfHZheemsKrNkw=
8g ) - Manage subscriptions ( https://url6610.logto.io/asm/?user_id=3D33014=
903&data=3DXpqiuWNoEgxBUM1D4Xc8WXQaHnRxFAoFtYj_qpClr3xoMDAwdTAwMKFhqgQuw-tl=
QPEKd_nsZOREGTfeyGV4aDmuyC3S3ky9YyFQxxMtydka60QgKhJenBpeBJKGdXxaWY-KyyseFXA=
d1zDkSViCQLgo0KCvUt2D2iGtl40Eve9pEv0sJb76xkR15LdnMOfp0j-qpFZArpSCbu4-qW_e2Z=
tmbsg8dixno1kWFjZltVb8r3fHYllqHRg6yqtu1IJpeSj3hH9k0pEuK_ijulGzAq91bwda0lYl9=
_CptV8ikqdyPGbyHVJs7ptxEE9asp-QwcfMKdG4D6nBibpZ-Es0sOJqpnJErhuCI-urqVVLyzIh=
XP_iIt0hwRzdFFoNoMd20fQh7ZyNoMl7lEizT1X-YQJoSGn5jTV2zzPF3hqlhJ_rpOPAFe85_Ba=
ItlxuHbWWsjPxL7Othd2HbDCGn8i6e3wT3RcjNHboA8I5If6JOnLFFcDw4YUdphHQXk3RWgUD1x=
kShvdY1SWHaBWUUVvrVrwQhhMnaBYiDRwoSYuCxx8Xnb3VLgqwbJ2vEDKrKhwCIgPXXTvioVdgO=
U_nIztdSAosxuYP5lpfJJZ4HB6dmpV5zPK5Vspjhn5IzBp8083H4k9jorZzYO65_Mq-uO69KeVN=
DAlqdsu8FieEOB81ZxwPYyf745r4Rxvbw-DuJLUNVJJAGqRyvXSWlUyTyOeY5aDa6igajCPiqv3=
LRfTO7JIBqH7QYU7howwY6m4Zxz30socCRDWrvrfcEx6W9Fz1hDYWsgY5oXqWi-JlwYKyIga_Nl=
Ufz23YMOcMCzDaBHiamuWgGvAafyVIsfDjdIv94HVOym94kvMGdeAvsvvUt8BfwarAexO0lhqrm=
FZTuy8oCkACOeZ96nEx8dGGv6690ozn6KCxgk8d5YgI6hzoDDlv_RPY3kIRdGEHQiQ8HLanbj0b=
uaeI9CPwcm54YHG3K9-mwcaG5tqGHrrh29CPpRzrZxfWgzP0a48bKRCAKMm8NmdCpFq4b1TGIjf=
sg5thv55VwZa9AN76muEkYzBc3GUYnpSUABQs18oiIhBT0e2uddP2DPyz4oA=3D )
--abf419b9d8e916bdac4d6a1dcd032f96365d6aeb77ce38e4cae02e2437f5
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8
Mime-Version: 1.0

<!DOCTYPE html PUBLIC>
<!--$-->
<table
  align=3D"center"
  width=3D"100%"
  border=3D"0"
  cellpadding=3D"0"
  cellspacing=3D"0"
  role=3D"presentation"
  style=3D'max-width:640px;font-family:"SF Pro Text", -apple-system, system=
-ui, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;-webkit-font=
-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smooth:always=
;background-color:#fff;color:#191c1d;padding:32px 0;font-size:14px;font-wei=
ght:400;line-height:20px'>
  <tbody>
    <tr style=3D"width:100%">
      <td>
        <title>Logto product updates</title>
        <div
          style=3D"display:none;overflow:hidden;line-height:1px;opacity:0;m=
ax-height:0;max-width:0">
          =F0=9F=9A=80 Key rotation grace periods, safer custom JWT handlin=
g, Account
          Center security settings, WhatsApp connector, and security fixes.
          <div>
            =C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=
=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=
=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=
=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=
=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=
=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=
=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=
=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=
=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=
=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=
=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=
=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=
=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=
=A0=E2=80=8C=E2=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=
=80=8B=E2=80=8D=E2=80=8E=E2=80=8F=EF=BB=BF=C2=A0=E2=80=8C=E2=80=8B=E2=80=8D=
=E2=80=8E=E2=80=8F=EF=BB=BF
          </div>
        </div>
        <section>
          <center>
            <img
              alt=3D"Logto logo"
              src=3D"https://cdn.mcauto-images-production.sendgrid.net/6dd8=
5237be2a1583/0bbbb9cd-a027-4b73-a1bb-50aec21f2420/488x180.png"
              style=3D"display:block;outline:none;border:none;text-decorati=
on:none"
              width=3D"160" />
          </center>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            Hi login,
          </p>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            We&#x27;re excited to share the latest Logto updates, including
            smoother private signing key rotation, safer custom JWT script
            handling, a new Account Center security page, WhatsApp verifica=
tion
            through Meta Cloud API, and several security and compatibility
            improvements.
          </p>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            Private signing key rotation grace period
          </h3>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            Logto now supports a grace period when rotating private signing
            keys, giving clients time to refresh cached JWKS before the new=
 key
            becomes active.
          </p>
          <ul
            style=3D"font-size:14px;font-weight:400;line-height:24px;paddin=
g:0 0 0 24px">
            <li>
              Configure it with the
              <code>PRIVATE_KEY_ROTATION_GRACE_PERIOD</code> environment
              variable or the <code>--gracePeriod</code> CLI option.
            </li>
            <li>
              During the grace period, the new signing key is marked as
              <strong>Next</strong> while the existing key remains
              <strong>Current</strong>.
            </li>
            <li>
              After the grace period ends, the new key becomes
              <strong>Current</strong> and the old key is marked as
              <strong>Previous</strong>.
            </li>
          </ul>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            This helps avoid authentication failures caused by stale JWKS
            caches. Learn more in the<!-- -->
            <a
              href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64PNyNvi=
BO1wngayJCwuCSg-2F6SXYhcGwRv-2BZy1g3wiIrIqsVAVIjKezraTbR-2BZd7TZGIiSzs-2BBr=
g6AhVKbVw268ujcoAmjydFfLAZCVMfFw-3DsYAo_hsuUsKbXyJ2AlYJOMtT7WvYIcg99gJ0lMYx=
jFnWJ-2B6cAg9MtIoqdluu25hLO-2BU61IzOHVU5WW5RHmZva63XT-2Frd8xJv2ruvUXGT7esSQ=
1KBAYNM5xqgOUcfFetLyr2pGSmXxs6b22ym2qIbN4sbIjsmQa7FmTER0F6hrO601ucB1C9pGPvq=
LSZWE1H2unNYRG-2FDWidCJhKAHT-2BhDCrqmLybj-2FDPLEKq7doLqlQt-2BN3ea4N8cDriOhO=
VCYfDiHICfYoFALPgc8Ygd2sfem9pakPKcvTo2xuAGVDc7QOcy4dyzbRncZhHReN9Ttk-2BqAXG=
7pgfBO5Oc4jcITAqItAa9zhcRAiw78lJQav74vkDcuU-2FkHXZNoLKLjZL2h1ThEgbSaasbuFmk=
mjpoNsBLnDTan1it8Oqwm1acr3WKMaMHAKX9aU3s2jZYeNE1ZYBgICF9ZsVzaJWS-2BgBg0GFUi=
aVVBgXzd5oi9NRXd2F8Bb-2BkfzVi-2BzKscCBJOpkdk7xMvIAPVSxzYp4yuxLHwwhg-2BSmIL7=
dL24VDGsLfMTPb-2BVDn6QWIqAHSQwXKgj2dtFt4Cvra0n-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh=
0j31yAubOUsg1UFgiU4unvzGFT4cuCYPpw3dZUJ27n-2BYHRQUH4QN5edhmga-2F-2FOmbXKQSK=
TMeT5F-2F-2FJX2A77eiY7tVj45f0yZEcaxhqWPpPsrlxmBNeQRGfxr-2F4pnzs27mN0BrgxNU2=
URz76MaiJoOlSOQJfPc-2FLCYjHYFpjgNPZmKHcA6OhtPzFDazrYDkDZzL33FZ6n2L4aF34PmZM=
5cFk5abYQYCX-2FBbrfCNj2oVF8OS689MINVOSyQZafO2R1kdro09FgtdZeEet3qoIsXi58v2EZ=
gMJbpIGI3wpS8wkVkaKzAJ3vY73FNltWMpE2ysbcOuX9-2FrcGG4-3D"
              >documentation</a
            >.
          </p>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            Safer custom JWT script error handling
          </h3>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            Custom JWT scripts for access token and client credentials flow=
s can
            now be configured to block token issuance when script execution
            fails.
          </p>
          <ul
            style=3D"font-size:14px;font-weight:400;line-height:24px;paddin=
g:0 0 0 24px">
            <li>
              <code>api.denyAccess()</code> is preserved as an
              <code>access_denied</code> response.
            </li>
            <li>
              Other blocking-mode failures return localized
              <code>invalid_request</code> responses.
            </li>
            <li>
              Console includes a dedicated <strong>Error handling</strong> =
tab
              for configuring the behavior.
            </li>
            <li>
              Newly created scripts default to blocking issuance on error, =
while
              existing scripts keep the legacy disabled behavior when no va=
lue
              has been saved.
            </li>
          </ul>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            This gives teams control over whether token customization shoul=
d
            fail open or fail closed based on their security requirements.
          </p>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            Account Center security page
          </h3>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            The out-of-the-box Account Center now includes a security page =
at<!-- -->
            <code>/account/security</code>, so end users can manage key acc=
ount
            protection settings in one place.
          </p>
          <ul
            style=3D"font-size:14px;font-weight:400;line-height:24px;paddin=
g:0 0 0 24px">
            <li>Link and unlink social accounts.</li>
            <li>Manage MFA 2-step verification.</li>
            <li>Delete their account when the flow is enabled.</li>
          </ul>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            Console also now exposes the delete-account URL field in Accoun=
t
            Center settings and surfaces Account Center and social prebuilt=
 UI
            entries.
          </p>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            WhatsApp connector via Meta Cloud API
          </h3>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            A new WhatsApp connector is available for sending verification
            messages through the official Meta Cloud API, enabling
            WhatsApp-based SMS and verification-code delivery scenarios.
          </p>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            Organization assignment API responses
          </h3>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            Organization user and role assignment APIs now return response
            bodies, making integration flows easier to confirm programmatic=
ally.
          </p>
          <ul
            style=3D"font-size:14px;font-weight:400;line-height:24px;paddin=
g:0 0 0 24px">
            <li>
              <code>POST /organizations/:id/users</code> returns<!-- -->
              <code>{ userIds: string[] }</code>.
            </li>
            <li>
              <code>POST /organizations/:id/users/:userId/roles</code>
              returns<!-- -->
              <code>{ organizationRoleIds: string[] }</code> with the final
              deduplicated role IDs assigned to the user.
            </li>
          </ul>
          <h3
            style=3D"margin:36px 0 16px;width:100%;text-align:center;color:=
#5D34F2;font-size:16px;font-weight:700;line-height:24px">
            Security and stability improvements
          </h3>
          <ul
            style=3D"font-size:14px;font-weight:400;line-height:24px;paddin=
g:0 0 0 24px">
            <li>
              <strong>Forgot-password enumeration protection:</strong>
              Forgot-password verification now returns a unified
              <code>verification_code.code_mismatch</code> error to avoid
              exposing whether an email or phone number exists.
            </li>
            <li>
              <strong>Social and SSO redirects in in-app browsers:</strong>
              Logto now stores a temporary redirect context fallback in
              <code>localStorage</code> when needed, improving reliability =
in
              browsers such as Instagram, Facebook, and LINE.
            </li>
            <li>
              <strong>Verification code connector request IP:</strong>
              Connectors now receive the correct request IP when sending
              verification codes.
            </li>
            <li>
              <strong>Console theme token:</strong> Console themes now incl=
ude
              the missing<!-- -->
              <code>--color-overlay-primary-subtle</code> token for both li=
ght
              and dark modes.
            </li>
          </ul>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            These updates continue to improve Logto&#x27;s security,
            reliability, and developer experience across production
            authentication flows.
          </p>
          <center>
            <a
              href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64PNyNvi=
BO1wngayJCwuCZMG0CxriFdsyfLe9oXhO5sHfCmLFagBWESm72Tf4O0c394vACv76dgd5-2BHq6=
unLSEp1lt2DiRtY2Sqf3nsAdMk-3D-iH9_hsuUsKbXyJ2AlYJOMtT7WvYIcg99gJ0lMYxjFnWJ-=
2B6cAg9MtIoqdluu25hLO-2BU61IzOHVU5WW5RHmZva63XT-2Frd8xJv2ruvUXGT7esSQ1KBAYN=
M5xqgOUcfFetLyr2pGSmXxs6b22ym2qIbN4sbIjsmQa7FmTER0F6hrO601ucB1C9pGPvqLSZWE1=
H2unNYRG-2FDWidCJhKAHT-2BhDCrqmLybj-2FDPLEKq7doLqlQt-2BN3ea4N8cDriOhOVCYfDi=
HICfYoFALPgc8Ygd2sfem9pakPKcvTo2xuAGVDc7QOcy4dyzbRncZhHReN9Ttk-2BqAXG7pgfBO=
5Oc4jcITAqItAa9zhcRAiw78lJQav74vkDcuU-2FkHXZNoLKLjZL2h1ThEgbSaasbuFmkmjpoNs=
BLnDTan1it8Oqwm1acr3WKMaMHAKX9aU3s2jZYeNE1ZYBgICF9ZsVzaJWS-2BgBg0GFUiaVVBgX=
zd5oi9NRXd2F8Bb-2BkfzVi-2BzKscCBJOpkdk7xMvIAPVSxzYp4yuxLHwwhg-2BSmIL7dL24VD=
GsLfMTPb-2BVDn6QWIqAHSQwXKgj2dtFt4Cvra0n-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh0j31yA=
ubOUsg1UFgiU4unvzGFT4cuCYPpw3dZUJ27n-2BYHRQUH4QN5edhmga-2F-2FOmbXKQSKTMeT5F=
-2F-2FJX2A77eiY7tVj45f0yZEcaxhqWPpPsrlxmBNeQRGfxr-2F4pnzs27mN0BrgxNU2URz76M=
aiJoOlSOQJfPc-2FLCYjHOT4-2F6g1IBCjTjhfvi20E2XrYGVKG-2BmoEFTsCUDZLxgumlduMzw=
8XQKXN6Yl81zmdQ6QcXnQntJFAZBcyQpwU7tiwbuOEjI7TRDkV5caYfaF-2FiyjNvLztKw596Zr=
k05OhJ0jXntdgsz7297zffgnotRD4E9pebZ-2B1obMtsZdEt3U-3D"
              style=3D"color:white;text-decoration-line:none;margin-top:12p=
x;display:inline-flex;background:#5D34F2;border-radius:8px;text-align:cente=
r;font-weight:500;padding:10px 16px;font-size:12px;line-height:14px"
              target=3D"_blank"
              >Try these new features now</a
            >
          </center>
          <p
            style=3D"font-size:14px;line-height:24px;margin-bottom:16px;mar=
gin-top:16px">
            As always, we welcome your feedback and suggestions. Feel free =
to
            reach out if you have any questions or need assistance.
          </p>
        </section>
        <section style=3D"text-align:center;color:#A9ACAC;margin-top:48px">
          <hr style=3D"width:100%;border:none;border-top:1px solid #eaeaea"=
 />
          <p
            style=3D"font-size:14px;line-height:20px;margin:20px 0;margin-b=
ottom:20px;margin-top:20px;margin-left:0;margin-right:0">
            <a
              href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64PNyNvi=
BO1wngayJCwuCUyn8hRLiXDveDa2DjQSB9dJZbiLmPa36RJOO5CMMfhR36U6p8cqIxKjrOSN-2F=
i-2BLeWHTpveiNAWUBrn-2BrFt-2BmfA4ymFB3fLcX-2FOyI6rq5NfNHZAA-2BWQ-2BKUhyD2hE=
2YJDoQ-3D-3D4KiS_hsuUsKbXyJ2AlYJOMtT7WvYIcg99gJ0lMYxjFnWJ-2B6cAg9MtIoqdluu2=
5hLO-2BU61IzOHVU5WW5RHmZva63XT-2Frd8xJv2ruvUXGT7esSQ1KBAYNM5xqgOUcfFetLyr2p=
GSmXxs6b22ym2qIbN4sbIjsmQa7FmTER0F6hrO601ucB1C9pGPvqLSZWE1H2unNYRG-2FDWidCJ=
hKAHT-2BhDCrqmLybj-2FDPLEKq7doLqlQt-2BN3ea4N8cDriOhOVCYfDiHICfYoFALPgc8Ygd2=
sfem9pakPKcvTo2xuAGVDc7QOcy4dyzbRncZhHReN9Ttk-2BqAXG7pgfBO5Oc4jcITAqItAa9zh=
cRAiw78lJQav74vkDcuU-2FkHXZNoLKLjZL2h1ThEgbSaasbuFmkmjpoNsBLnDTan1it8Oqwm1a=
cr3WKMaMHAKX9aU3s2jZYeNE1ZYBgICF9ZsVzaJWS-2BgBg0GFUiaVVBgXzd5oi9NRXd2F8Bb-2=
BkfzVi-2BzKscCBJOpkdk7xMvIAPVSxzYp4yuxLHwwhg-2BSmIL7dL24VDGsLfMTPb-2BVDn6QW=
IqAHSQwXKgj2dtFt4Cvra0n-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh0j31yAubOUsg1UFgiU4unvz=
GFT4cuCYPpw3dZUJ27n-2BYHRQUH4QN5edhmga-2F-2FOmbXKQSKTMeT5F-2F-2FJX2A77eiY7t=
Vj45f0yZEcaxhqWPpPsrlxmBNeQRGfxr-2F4pnzs27mN0BrgxNU2URz76MaiJoOlSOQJfPc-2FL=
CYjHWEk3dKHnc1uBZjtnHz6Cwny3MZi3n1wsMfieav-2FsxSLEAWbcqQo1S2r3YpA9a21-2BF4m=
T7W0R6VcKcgfOVh1VmWMPRqz7ZfBsf-2Bzdq9OjhMBTLdC3ALIE3K0c-2FuuusSqYJq0hEBM7aN=
r5XSHbfVSkokRI6rzoYBli5Jkje-2FgoKic-3D"
              style=3D"color:#A9ACAC;text-decoration-line:none;text-decorat=
ion:underline"
              target=3D"_blank"
              >Logto</a
            >: The better auth and identity infrastructure.
          </p>
          <table style=3D"margin:0 auto;width:auto;border-spacing:0">
            <tbody>
              <tr>
                <td
                  data-id=3D"__react-email-column"
                  style=3D"vertical-align:middle">
                  <a
                    href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64=
PNyNviBO1wngayJCwuCfn4fCKmO-2FOyFxGxAM-2FdOL35yCTctbt5W838Xz6owQRCMK5J_hsuU=
sKbXyJ2AlYJOMtT7WvYIcg99gJ0lMYxjFnWJ-2B6cAg9MtIoqdluu25hLO-2BU61IzOHVU5WW5R=
HmZva63XT-2Frd8xJv2ruvUXGT7esSQ1KBAYNM5xqgOUcfFetLyr2pGSmXxs6b22ym2qIbN4sbI=
jsmQa7FmTER0F6hrO601ucB1C9pGPvqLSZWE1H2unNYRG-2FDWidCJhKAHT-2BhDCrqmLybj-2F=
DPLEKq7doLqlQt-2BN3ea4N8cDriOhOVCYfDiHICfYoFALPgc8Ygd2sfem9pakPKcvTo2xuAGVD=
c7QOcy4dyzbRncZhHReN9Ttk-2BqAXG7pgfBO5Oc4jcITAqItAa9zhcRAiw78lJQav74vkDcuU-=
2FkHXZNoLKLjZL2h1ThEgbSaasbuFmkmjpoNsBLnDTan1it8Oqwm1acr3WKMaMHAKX9aU3s2jZY=
eNE1ZYBgICF9ZsVzaJWS-2BgBg0GFUiaVVBgXzd5oi9NRXd2F8Bb-2BkfzVi-2BzKscCBJOpkdk=
7xMvIAPVSxzYp4yuxLHwwhg-2BSmIL7dL24VDGsLfMTPb-2BVDn6QWIqAHSQwXKgj2dtFt4Cvra=
0n-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh0j31yAubOUsg1UFgiU4unvzGFT4cuCYPpw3dZUJ27n-2=
BYHRQUH4QN5edhmga-2F-2FOmbXKQSKTMeT5F-2F-2FJX2A77eiY7tVj45f0yZEcaxhqWPpPsrl=
xmBNeQRGfxr-2F4pnzs27mN0BrgxNU2URz76MaiJoOlSOQJfPc-2FLCYjHLm7OWNhmE1T5Yjt7D=
P-2FlxBrtmNv5fx4jO-2BULYZD0tXgW4EuBn71Jz4xC3-2Bq7txHJuOHGccNOCY0GynIyXYoDfY=
n770sexOcmkQsDCr2T8TqdAyqYXgFVkg-2FvfoCZ8uBJ4Mut438TxGoHiP1xMzabeyHkpVP5RCe=
Wp36HVPtzADg-3D"
                    style=3D"color:#067df7;text-decoration-line:none;displa=
y:block;margin:0 12px"
                    target=3D"_blank"
                    ><img
                      src=3D"https://cdn.mcauto-images-production.sendgrid.=
net/6dd85237be2a1583/dc8dac2a-c8a9-4d2a-9952-46aadc73bd54/60x60.png"
                      style=3D"display:block;outline:none;border:none;text-=
decoration:none;width:20px"
                  /></a>
                </td>
                <td
                  data-id=3D"__react-email-column"
                  style=3D"vertical-align:middle">
                  <a
                    href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64=
PNyNviBO1wngayJCwuCerYc6aGc7lakS2RxEP7QqgU-2FEeQ1VtFuaHUA4qeme56kOz6_hsuUsK=
bXyJ2AlYJOMtT7WvYIcg99gJ0lMYxjFnWJ-2B6cAg9MtIoqdluu25hLO-2BU61IzOHVU5WW5RHm=
Zva63XT-2Frd8xJv2ruvUXGT7esSQ1KBAYNM5xqgOUcfFetLyr2pGSmXxs6b22ym2qIbN4sbIjs=
mQa7FmTER0F6hrO601ucB1C9pGPvqLSZWE1H2unNYRG-2FDWidCJhKAHT-2BhDCrqmLybj-2FDP=
LEKq7doLqlQt-2BN3ea4N8cDriOhOVCYfDiHICfYoFALPgc8Ygd2sfem9pakPKcvTo2xuAGVDc7=
QOcy4dyzbRncZhHReN9Ttk-2BqAXG7pgfBO5Oc4jcITAqItAa9zhcRAiw78lJQav74vkDcuU-2F=
kHXZNoLKLjZL2h1ThEgbSaasbuFmkmjpoNsBLnDTan1it8Oqwm1acr3WKMaMHAKX9aU3s2jZYeN=
E1ZYBgICF9ZsVzaJWS-2BgBg0GFUiaVVBgXzd5oi9NRXd2F8Bb-2BkfzVi-2BzKscCBJOpkdk7x=
MvIAPVSxzYp4yuxLHwwhg-2BSmIL7dL24VDGsLfMTPb-2BVDn6QWIqAHSQwXKgj2dtFt4Cvra0n=
-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh0j31yAubOUsg1UFgiU4unvzGFT4cuCYPpw3dZUJ27n-2BY=
HRQUH4QN5edhmga-2F-2FOmbXKQSKTMeT5F-2F-2FJX2A77eiY7tVj45f0yZEcaxhqWPpPsrlxm=
BNeQRGfxr-2F4pnzs27mN0BrgxNU2URz76MaiJoOlSOQJfPc-2FLCYjH9C20dMhfYzXW0GqYq2d=
YrOF2EaLaVIbG4tMtdjuwWr6LViSu42hb8IrVop-2BbrOmBTNlucIP-2BwhkW4SQS5NtqaWAHJv=
ZpcyDUUphvt0qmMDq2Hm5TP95IwHESG5SbbZWhMtU3YEep3uJTyW-2BwaP9ngfovFtkyWfc34dN=
2BGJx8Hw-3D"
                    style=3D"color:#067df7;text-decoration-line:none;displa=
y:block;margin:0 12px"
                    target=3D"_blank"
                    ><img
                      src=3D"https://cdn.mcauto-images-production.sendgrid.=
net/6dd85237be2a1583/7fce3308-7971-4d00-9663-60f963f1c9e3/60x60.png"
                      style=3D"display:block;outline:none;border:none;text-=
decoration:none;width:20px"
                  /></a>
                </td>
                <td
                  data-id=3D"__react-email-column"
                  style=3D"vertical-align:middle">
                  <a
                    href=3D"https://url6610.logto.io/ls/click?upn=3Du001.64=
PNyNviBO1wngayJCwuCaC2Qf9av8XPihE-2B-2FPV-2FPQmgc0IPzo0S6Z6BjegOlxjmmd6D_hs=
uUsKbXyJ2AlYJOMtT7WvYIcg99gJ0lMYxjFnWJ-2B6cAg9MtIoqdluu25hLO-2BU61IzOHVU5WW=
5RHmZva63XT-2Frd8xJv2ruvUXGT7esSQ1KBAYNM5xqgOUcfFetLyr2pGSmXxs6b22ym2qIbN4s=
bIjsmQa7FmTER0F6hrO601ucB1C9pGPvqLSZWE1H2unNYRG-2FDWidCJhKAHT-2BhDCrqmLybj-=
2FDPLEKq7doLqlQt-2BN3ea4N8cDriOhOVCYfDiHICfYoFALPgc8Ygd2sfem9pakPKcvTo2xuAG=
VDc7QOcy4dyzbRncZhHReN9Ttk-2BqAXG7pgfBO5Oc4jcITAqItAa9zhcRAiw78lJQav74vkDcu=
U-2FkHXZNoLKLjZL2h1ThEgbSaasbuFmkmjpoNsBLnDTan1it8Oqwm1acr3WKMaMHAKX9aU3s2j=
ZYeNE1ZYBgICF9ZsVzaJWS-2BgBg0GFUiaVVBgXzd5oi9NRXd2F8Bb-2BkfzVi-2BzKscCBJOpk=
dk7xMvIAPVSxzYp4yuxLHwwhg-2BSmIL7dL24VDGsLfMTPb-2BVDn6QWIqAHSQwXKgj2dtFt4Cv=
ra0n-2Bl0uI3Xt3y9iZ9rYqflSbiZ0RTh0j31yAubOUsg1UFgiU4unvzGFT4cuCYPpw3dZUJ27n=
-2BYHRQUH4QN5edhmga-2F-2FOmbXKQSKTMeT5F-2F-2FJX2A77eiY7tVj45f0yZEcaxhqWPpPs=
rlxmBNeQRGfxr-2F4pnzs27mN0BrgxNU2URz76MaiJoOlSOQJfPc-2FLCYjHvSAd6ZU3yraCoJG=
rV67NEjoYMk9ckCIvOfUYgVo2FZNyCdphITqacDPDCL9ynXJzolGJcOwV2XHQuUUQRoyDEMb2DF=
spLlpEcX3CLpbNXmdXUyjUuChkOh6TM2CEYsvPgTAzmD9S64ZUDXykSuacPTmzu1MbjdHQdCPw3=
qnsGy0-3D"
                    style=3D"color:#067df7;text-decoration-line:none;displa=
y:block;margin:0 12px"
                    target=3D"_blank"
                    ><img
                      src=3D"https://cdn.mcauto-images-production.sendgrid.=
net/6dd85237be2a1583/0f5c7577-0d71-4dcb-8a18-4b79ff3f914a/60x60.png"
                      style=3D"display:block;outline:none;border:none;text-=
decoration:none;width:20px"
                  /></a>
                </td>
                <td
                  data-id=3D"__react-email-column"
                  style=3D"vertical-align:middle">
                  <a
                    href=3D"mailto:[email protected]"
                    style=3D"color:#067df7;text-decoration-line:none;displa=
y:block;margin:0 12px"
                    target=3D"_blank"
                    ><img
                      src=3D"https://cdn.mcauto-images-production.sendgrid.=
net/6dd85237be2a1583/f3aa4e40-11b0-49f3-b920-f9f9dbef151c/60x50.png"
                      style=3D"display:block;outline:none;border:none;text-=
decoration:none;width:20px"
                  /></a>
                </td>
              </tr>
            </tbody>
          </table>
          <p
            style=3D"font-size:12px;line-height:16px;margin-bottom:16px;mar=
gin-top:16px">
            =C2=A9 Silverhand, Inc., 2810 North Church Street, Wilmington, =
DE 19802
          </p>
          <p
            style=3D"font-size:12px;line-height:16px;margin-bottom:16px;mar=
gin-top:16px">
            <a
              href=3D"https://url6610.logto.io/asm/unsubscribe/?user_id=3D3=
3014903&amp;data=3Da6lHcZzKEWFyGJfsWBXa-Om_Bc9002MI5WEYDWf3qldoMDAwdTAwMFLY=
L0Vf7ALeVCGlmjwVxNxGL2Qwc4a7y0if9QNRCNfMouCMddYz9b34WAZaCvQwlODoKTQGPHBcX4p=
h8NsDIEajRp-7sP8R2pEQCF8KmxG_jkUzKVCK6BnGzFb_HQySlz7IVgfL5-tJD_2Uy4SCKoqVeL=
CT51v8PReOshwZ-SSo-58ebfO3nfoN5ann-3cD5dtncIdU0tvwru1iwvZ7m28d7e0XlWj0kN4Xs=
k5Hd1T2dN_OVf-pslp4G7MZt59eD37Iro6q9RL_hCMfV6UurM9niSl1_U3uk_xrZnkqoqgatpXV=
eoOSYBNo-37fnPUiMCTZWaGS9sst3tWjpkToGDR_7KDJXGs5vKymh3YZpWNWy17u11dTbyH_3tJ=
208i5BlCaEqFidUyR9FsOrV7RhZ3KDArgIP2iRD-K7l47cav4t9rH-GuUDXEZUx_m-Wv_izjfoZ=
rODG4EnTtWsBKv6qKfaC28wbBxj45GKbliXmz76XW-_vqRx-peS5WbvMMkGn2JgukY0Bx12UVZL=
8YvVFQ77woJJKRfO6XfKr2bzzU2iE4Z4q4pTpCxQlGNZMz-P2B52cVqBLbt9Tvx0MQmzACkb0hZ=
xS1XBgoKQQrguTLCVD6IYDBIgf4SuUsdRBYyPFbzbKnX7Qo0ldtfovmNQGTHsU0uP2blbbYc65Z=
miKMc5zWCMU-jgMK8-5GQ1n4BznDwnAypufNyJ38LPMjNzUiz7xf9PSgmBdhGlqqfsyKlASTThN=
dW2RTu5kQp8iQkXAaEZG_mIrKhdFCzpHlskzsS3MN2ceEgkNrRLm5AI6paxWevoAzJ3zZMuXX1o=
K1zF7WDfCw0DWHiI4Mh2CVkYYN6ABn1Q_EHjbwLBRJ22OM_6mmC_VbEr3GuRmbtcZs4McDGNxuV=
Y9fGNi8raBEf_VnWRRf9CgyKVuk8TCcTCst6Ouin5AFDpM5YGm982kKruBpOiwMMpnqxtMvgtGq=
DibbTJe7sRHfFkW62Tq6pkUwJsxnjWHfvRQ6kJp8zEqvRISvMyzryp3GZuhzDFQA8kXu6moiizf=
HZheemsKrNkw8g"
              style=3D"color:#A9ACAC;text-decoration-line:none"
              target=3D"_blank"
              >Unsubscribe</a
            >
            <!-- -->-<!-- -->
            <a
              href=3D"https://url6610.logto.io/asm/?user_id=3D33014903&amp;=
data=3DXpqiuWNoEgxBUM1D4Xc8WXQaHnRxFAoFtYj_qpClr3xoMDAwdTAwMKFhqgQuw-tlQPEK=
d_nsZOREGTfeyGV4aDmuyC3S3ky9YyFQxxMtydka60QgKhJenBpeBJKGdXxaWY-KyyseFXAd1zD=
kSViCQLgo0KCvUt2D2iGtl40Eve9pEv0sJb76xkR15LdnMOfp0j-qpFZArpSCbu4-qW_e2Ztmbs=
g8dixno1kWFjZltVb8r3fHYllqHRg6yqtu1IJpeSj3hH9k0pEuK_ijulGzAq91bwda0lYl9_Cpt=
V8ikqdyPGbyHVJs7ptxEE9asp-QwcfMKdG4D6nBibpZ-Es0sOJqpnJErhuCI-urqVVLyzIhXP_i=
It0hwRzdFFoNoMd20fQh7ZyNoMl7lEizT1X-YQJoSGn5jTV2zzPF3hqlhJ_rpOPAFe85_BaItlx=
uHbWWsjPxL7Othd2HbDCGn8i6e3wT3RcjNHboA8I5If6JOnLFFcDw4YUdphHQXk3RWgUD1xkShv=
dY1SWHaBWUUVvrVrwQhhMnaBYiDRwoSYuCxx8Xnb3VLgqwbJ2vEDKrKhwCIgPXXTvioVdgOU_nI=
ztdSAosxuYP5lpfJJZ4HB6dmpV5zPK5Vspjhn5IzBp8083H4k9jorZzYO65_Mq-uO69KeVNDAlq=
dsu8FieEOB81ZxwPYyf745r4Rxvbw-DuJLUNVJJAGqRyvXSWlUyTyOeY5aDa6igajCPiqv3LRfT=
O7JIBqH7QYU7howwY6m4Zxz30socCRDWrvrfcEx6W9Fz1hDYWsgY5oXqWi-JlwYKyIga_NlUfz2=
3YMOcMCzDaBHiamuWgGvAafyVIsfDjdIv94HVOym94kvMGdeAvsvvUt8BfwarAexO0lhqrmFZTu=
y8oCkACOeZ96nEx8dGGv6690ozn6KCxgk8d5YgI6hzoDDlv_RPY3kIRdGEHQiQ8HLanbj0buaeI=
9CPwcm54YHG3K9-mwcaG5tqGHrrh29CPpRzrZxfWgzP0a48bKRCAKMm8NmdCpFq4b1TGIjfsg5t=
hv55VwZa9AN76muEkYzBc3GUYnpSUABQs18oiIhBT0e2uddP2DPyz4oA=3D"
              style=3D"color:#A9ACAC;text-decoration-line:none"
              target=3D"_blank"
              >Manage subscriptions</a
            >
          </p>
        </section>
      </td>
    </tr>
  </tbody>
</table>
<!--/$-->
<img src=3D"https://url6610.logto.io/wf/open?upn=3Du001.sJ-2Fm00lpQMT-2F8lB=
JkUdqbrR-2FmtYOyWsvNHsR8k3-2FWx4hjqWce7z1MSEb0JvPp1ntrULeGE1voXmj-2FUkoh3k4=
E8n3XN-2BYPhjPgXaE8-2Fpn8Ogj7XpGd-2FgN6eqFsSXsAnCHpqAw36N76bvCISjDorb0L-2FB=
OeYK1vMH75DPudXNiGLVg9vrLTWEmLxKtEQsQuDPKamAKa5ffvMcx5kF2XwUwGRpeP6edi-2FZH=
FX5nrgZwvHqvR3ntm1DHdQaimF8acvz6ne-2B5IsuGlUpHbII5RFEEDvRuzlFuDWwjUWq20xBL0=
-2BHLT9j0J-2FTsUKvUjY1QzwFjztMGUn7LtnWixl1Dtc9y6EhNykPRYejpwyURnDQ-2FrUHJc7=
KRStMBHuGx5J0OTa67RMAqmNLaKgaqe-2B44JtTp9ohus-2FskIHQp1wxpRHxs-2FkbNoU9dcye=
J-2BT-2BKDSg7HgbAiAMJQAl9tYr-2F5Erpl8PRljjCG5yiNFxqI52McaHfW2Nz69JbS3bX8vXU=
8AXeMPO0qQ67p4SPwOIYnDp-2Bfw85erapUHPfxWkTQmezPWXlV5S0Wdy-2FVwwRVdq6WRLOXtg=
IDbGK2C4yveDBjINKah5S-2FyGdXrikHjUKj6g2U-2Bm5-2Bhp9ZjuhYibFBIiazwCV4RDC8B7N=
aBP6TA2MJIQrSQsfhYfVkhCRnT-2BCltD3p-2BBEaKyuPf4QgHEXqLtIpe2HKlj5GSrW9q-2B-2=
Fepk5IZuR5wiaQNGkdEzTtZahPUIBm3luxCSlLSY96iMYb2jQtVy-2BfiC9RV0kFpPUMgA79QnQ=
fITMHzXBszBbhQm1-2BAwsj2uSrL8soQch-2BOq2uRi3J5n7Uk9IF8znKqif41QXjktQuU-2FLt=
b9wK-2Fv1-2FVRp7FgHZ34GkNowNHNHcBmYTWHY4aR4yesaIQDuWGFi3WyLbAxiCf6FtTbYLDd8=
QoZIbC3r2-2FioSH8-3D" alt=3D"" width=3D"1" height=3D"1" border=3D"0" style=
=3D"height:1px !important;width:1px !important;border-width:0 !important;ma=
rgin-top:0 !important;margin-bottom:0 !important;margin-right:0 !important;=
margin-left:0 !important;padding-top:0 !important;padding-bottom:0 !importa=
nt;padding-right:0 !important;padding-left:0 !important;"/>
--abf419b9d8e916bdac4d6a1dcd032f96365d6aeb77ce38e4cae02e2437f5--