fix and update
This commit is contained in:
@@ -5,6 +5,7 @@ export interface OneTapUrls {
|
||||
frontendBase: string;
|
||||
widgetUrl: string;
|
||||
fedcmConfigUrl: string;
|
||||
fedcmDiscoverUrl: string;
|
||||
webIdentityUrl: string;
|
||||
projectName: string;
|
||||
}
|
||||
@@ -21,13 +22,14 @@ export function buildOneTapUrls(
|
||||
frontendBase: front,
|
||||
widgetUrl: `${front}/sso-widget.js`,
|
||||
fedcmConfigUrl: `${base}/fedcm/config.json`,
|
||||
fedcmDiscoverUrl: `${base}/fedcm/discover.json`,
|
||||
webIdentityUrl: `${base}/.well-known/web-identity`,
|
||||
projectName
|
||||
};
|
||||
}
|
||||
|
||||
export function buildOneTapExamples(urls: OneTapUrls, clientIdPlaceholder = 'YOUR_CLIENT_ID'): OAuthExample[] {
|
||||
const { apiBase, frontendBase, widgetUrl, fedcmConfigUrl, projectName } = urls;
|
||||
const { apiBase, frontendBase, widgetUrl, fedcmConfigUrl, fedcmDiscoverUrl, webIdentityUrl, projectName } = urls;
|
||||
const redirectUri = 'https://app.example.com/auth/callback';
|
||||
|
||||
return [
|
||||
@@ -59,8 +61,8 @@ export function buildOneTapExamples(urls: OneTapUrls, clientIdPlaceholder = 'YOU
|
||||
id: 'fedcm-native',
|
||||
label: 'FedCM (нативный API)',
|
||||
language: 'javascript',
|
||||
code: `// Работает в Chrome/Edge при поддержке IdentityCredential.
|
||||
// Пользователь должен быть залогинен на ${frontendBase} (FedCM cookie).
|
||||
code: `// Работает в Chrome/Edge 132+ (поля name/email/picture/tel — с Chrome 141 для tel).
|
||||
// Пользователь должен быть залогинен на ${frontendBase} (cookie lendry_fedcm_sess на домене IdP).
|
||||
|
||||
async function loginWithFedCM() {
|
||||
if (!('IdentityCredential' in window)) {
|
||||
@@ -72,6 +74,7 @@ async function loginWithFedCM() {
|
||||
providers: [{
|
||||
configURL: '${fedcmConfigUrl}',
|
||||
clientId: '${clientIdPlaceholder}',
|
||||
// Chrome 132+: disclosure в диалоге FedCM (имя, email, аватар, телефон)
|
||||
fields: ['name', 'email', 'picture', 'tel']
|
||||
}]
|
||||
},
|
||||
@@ -145,14 +148,20 @@ async function fetchProfile(accessToken) {
|
||||
id: 'curl-fedcm',
|
||||
label: 'FedCM endpoints (curl)',
|
||||
language: 'bash',
|
||||
code: `# Манифест FedCM
|
||||
curl -s ${apiBase}/.well-known/web-identity | jq
|
||||
code: `# Манифест FedCM (заголовок Sec-Fetch-Dest обязателен для Chrome)
|
||||
curl -s ${webIdentityUrl} \\
|
||||
-H "Sec-Fetch-Dest: webidentity" | jq
|
||||
|
||||
# Конфигурация провайдера
|
||||
curl -s ${apiBase}/fedcm/config.json | jq
|
||||
# Конфигурация провайдера (branding.name = PROJECT_NAME из админки)
|
||||
curl -s ${fedcmConfigUrl} \\
|
||||
-H "Sec-Fetch-Dest: webidentity" | jq
|
||||
|
||||
# Список аккаунтов (нужна cookie lendry_fedcm_sess после входа на IdP)
|
||||
# Discovery для виджета и диагностики
|
||||
curl -s ${fedcmDiscoverUrl} | jq
|
||||
|
||||
# Список аккаунтов (cookie lendry_fedcm_sess после входа на IdP)
|
||||
curl -s ${apiBase}/fedcm/accounts \\
|
||||
-H "Sec-Fetch-Dest: webidentity" \\
|
||||
-H "Cookie: lendry_fedcm_sess=..." \\
|
||||
--include
|
||||
|
||||
|
||||
Reference in New Issue
Block a user