Har bir ilova bilan har bir ilovani bog'lash — bu klassik n² muammosi. Har bir ilova boshqa ilovalar bilan bog'lanish uchun OAuth klientini ro'yxatdan o'tkazishi kerak. Bu jarayon odatda 5 daqiqa davom etadi, ammo ba'zida shartnoma imzolash yoki videokallga chiqish talab qilinishi mumkin. Bu ad-hoc, manual jarayon ko'pincha muammoga aylanadi.
OAuth protokoli
OAuth bu muammoga yechim berish uchun mo'ljallangan protokol. Ammo, har bir ilova boshqa ilovalar bilan bog'lanish uchun alohida ro'yxatdan o'tkazishi kerak. Bu jarayonni avtomatlashtirish uchun Dynamic Client Registration (DCR) va Client ID Metadata Documents (CIMD) protokollari ishlatiladi.
Dynamic Client Registration (DCR)
DCR bu jarayonni avtomatlashtiradi. Ilova dinamik ravishda OAuth klientini yaratadi va darhol OAuth oqimini boshlaydi. Bu jarayonni bir necha daqiqadan bir necha soatgacha qisqartiradi. DCR protokoli Anthropic va OpenAI tomonidan ishlab chiqilgan va ularning mijozlari uchun ishlatiladi.
Val Town startapi DCR protokolini ishlab chiqish jarayonida o'rganib chiqdi. Bu protokol Val Town ilovasi bilan boshqa ilovalarni bog'lash imkonini beradi. DCR protokoli yordamida Val Town ilovasi boshqa ilovalar bilan bog'lanish uchun alohida ro'yxatdan o'tkazish talab qilinmaydi.
Login with DCR
Val Town ilovasi yordamida har qanday ilova 2 qator kod bilan "Login with Val Town" funksiyasini qo'shishi mumkin. Bu jarayonni avtomatlashtiradi va ilova foydalanuvchilarining Val Town hisoblariga kirish imkonini beradi.
Val Town ilovasi yordamida har qanday ilova 2 qator kod bilan "Login with Val Town" funksiyasini qo'shishi mumkin. Bu jarayonni avtomatlashtiradi va ilova foydalanuvchilarining Val Town hisoblariga kirish imkonini beradi.
Client ID Metadata Documents (CIMD)
CIMD protokoli DCR protokolini yaxshilaydi. Bu protokol yordamida ilova OAuth klientini ro'yxatdan o'tkazish talab qilinmaydi. Ilova OAuth klientini o'z URLida saqlaydi va darhol OAuth oqimini boshlaydi. Bu jarayonni yana bir necha daqiqaga qisqartiradi.
Notion ilovasi CIMD protokolini qo'llaydi. Notion ilovasi yordamida har qanday ilova "Login with Notion" funksiyasini qo'shishi mumkin. Bu jarayonni avtomatlashtiradi va ilova foydalanuvchilarining Notion hisoblariga kirish imkonini beradi.
/** @jsxImportSource https://esm.sh/hono/jsx */
import { Hono } from "https://esm.sh/hono";
import {
getOAuthUserData,
oauthMiddleware,
} from "https://esm.town/v/std/oauth/middleware.ts";
const app = new Hono();
app.get("/", async (c) => {
const session = await getOAuthUserData(c.req.raw);
return c.html(
<html>
<body>
{session?.user
? <p>Logged in as {session.user.username}</p>
: <a href="/auth/login">Log in</a>}
</body>
</html>,
);
});
export default oauthMiddleware(app.fetch);
Yangi protokollar
Bugungi kunda minglab ilovalar DCR protokolini qo'llaydi va yuzlab ilovalar CIMD protokolini qo'llaydi. Bu yangi protokollar tez tarqalmoqda. MCP serverlari yordamida ChatGPT va Claude ilovalari bilan bog'lanish imkonini beradi. Bu jarayonni avtomatlashtiradi va ilovalarni bir-biri bilan bog'lash imkonini beradi.
Val Town startapi bu yangi protokollarni qo'llab, 3,613 ta bog'lovchi bilan demo ilova yaratdi. Bu ilova har qanday ilova bilan bog'lanish imkonini beradi. Bu jarayonni avtomatlashtiradi va ilovalarni bir-biri bilan bog'lash imkonini beradi.
{
"issuer": "https://mcp.notion.com",
"authorization_endpoint": "https://mcp.notion.com/authorize",
"token_endpoint": "https://mcp.notion.com/token",
"registration_endpoint": "https://mcp.notion.com/register",
"scopes_supported": [
"default"
],
"response_types_supported": [
"code"
],
"response_modes_supported": [
"query"
],
"grant_types_supported": [
"authorization_code",
"refresh_token",
"urn:ietf:params:oauth:grant-type:jwt-bearer"
],
"authorization_grant_profiles_supported": [
"urn:ietf:params:oauth:grant-profile:id-jag"
],
"token_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post",
"none"
],
"revocation_endpoint": "https://mcp.notion.com/token",
"code_challenge_methods_supported": [
"plain",
"S256"
],
"client_id_metadata_document_supported": true,
"introspection_endpoint": "https://mcp.notion.com/introspect",
"introspection_endpoint_auth_methods_supported": [
"client_secret_basic",
"client_secret_post",
"none"
]
}
Muammolar
Hali ham ba'zi muammolar mavjud. Ba'zi ilovalar DCR protokolini to'liq qo'llab-quvvatlamaydi. Bu muammolarni hal qilish uchun yangi protokollar ishlab chiqilishi kerak. MCP vs REST API muammosi ham mavjud. DCR/CIMD protokollari faqat MCP ilovalari uchun ishlatilishi mumkin. Bu muammolarni hal qilish uchun yangi protokollar ishlab chiqilishi kerak.
Asl manba: blog.val.town