Skip to content

Commit 6b774e9

Browse files
chore: update translations and generated content (#1313)
Co-authored-by: wangsijie <5717882+wangsijie@users.noreply.github.com>
1 parent 3443536 commit 6b774e9

File tree

9 files changed

+365
-78
lines changed
  • i18n
    • de/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • es/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • fr/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • ja/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • ko/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • pt-BR/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • th/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • zh-CN/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router
    • zh-TW/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router

9 files changed

+365
-78
lines changed

i18n/de/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router/README.mdx

Lines changed: 39 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ import ConfigApiResources from './api-resources/_config-api-resources.mdx';
1919
import FetchAccessTokenForApiResources from './api-resources/_fetch-access-token-for-api-resources.mdx';
2020
import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-token-for-user.mdx';
2121

22-
# Authentifizierung zu deiner Next.js (App Router)-Anwendung hinzufügen
22+
# Authentifizierung zu deiner Next.js (App Router)-Anwendung hinzufügen (Add authentication to your Next.js (App Router) application)
2323

2424
<GuideTip />
2525

2626
## Voraussetzungen \{#prerequisites}
2727

28-
- Ein [Logto Cloud](https://cloud.logto.io)-Konto oder ein [selbst gehostetes Logto](/introduction/set-up-logto-oss).
29-
- Eine Logto traditionelle Anwendung erstellt.
28+
- Ein [Logto Cloud](https://cloud.logto.io)-Konto oder eine [selbst gehostete Logto](/introduction/set-up-logto-oss).
29+
- Eine erstellte traditionelle Logto-Anwendung.
3030

3131
## Installation \{#installation}
3232

@@ -52,7 +52,7 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
5252

5353
<FetchAccessTokenForApiResources />
5454

55-
Wenn du ein Zugangstoken in der Serverkomponente abrufen musst, kannst du die Funktion `getAccessTokenRSC` verwenden:
55+
Wenn du ein Zugangstoken im Server-Component abrufen musst, kannst du die Funktion `getAccessTokenRSC` verwenden:
5656

5757
```tsx title="app/page.tsx"
5858
import { getAccessTokenRSC } from '@logto/next/server-actions';
@@ -71,15 +71,15 @@ export default async function Home() {
7171

7272
:::tip
7373

74-
HTTP erlaubt es nicht, Cookies nach Beginn des Streamings zu setzen, `getAccessTokenRSC` kann den Cookie-Wert nicht aktualisieren, sodass, wenn das Zugangstoken aktualisiert wird, es nicht in der Sitzung gespeichert wird. Es wird empfohlen, die Funktion `getAccessToken` auf der Client-Seite oder in Routen-Handlern zu verwenden.
74+
HTTP erlaubt das Setzen von Cookies nach Beginn des Streamings nicht, daher kann `getAccessTokenRSC` den Cookie-Wert nicht aktualisieren. Wenn das Zugangstoken also aktualisiert wird, bleibt es nicht in der Sitzung erhalten. Es wird empfohlen, die Funktion `getAccessToken` auf der Client-Seite oder in Route-Handlern zu verwenden.
7575

7676
:::
7777

7878
### Organisationstokens abrufen \{#fetch-organization-tokens}
7979

8080
<FetchOrganizationTokenForUser />
8181

82-
Wenn du ein Organisationstoken in der Serverkomponente abrufen musst, kannst du die Funktion `getOrganizationTokenRSC` verwenden:
82+
Wenn du ein Organisationstoken im Server-Component abrufen musst, kannst du die Funktion `getOrganizationTokenRSC` verwenden:
8383

8484
```tsx title="app/page.tsx"
8585
import { getOrganizationTokenRSC } from '@logto/next/server-actions';
@@ -98,14 +98,45 @@ export default async function Home() {
9898

9999
:::tip
100100

101-
HTTP erlaubt es nicht, Cookies nach Beginn des Streamings zu setzen, `getOrganizationTokenRSC` kann den Cookie-Wert nicht aktualisieren, sodass, wenn das Zugangstoken aktualisiert wird, es nicht in der Sitzung gespeichert wird. Es wird empfohlen, die Funktion `getOrganizationToken` auf der Client-Seite oder in Routen-Handlern zu verwenden.
101+
HTTP erlaubt das Setzen von Cookies nach Beginn des Streamings nicht, daher kann `getOrganizationTokenRSC` den Cookie-Wert nicht aktualisieren. Wenn das Zugangstoken also aktualisiert wird, bleibt es nicht in der Sitzung erhalten. Es wird empfohlen, die Funktion `getOrganizationToken` auf der Client-Seite oder in Route-Handlern zu verwenden.
102102

103103
:::
104104

105105
## Externen Sitzungspeicher verwenden \{#use-external-session-storage}
106106

107107
<ExternalStorage />
108108

109-
## Weiterführende Lektüre \{#further-readings}
109+
## Automatische Weiterleitung zur Anmeldung bei fehlender Berechtigung \{#automatic-sign-in-redirect\}
110+
111+
:::tip
112+
Der `signIn`-Helper ändert Cookies, um die Anmeldesitzung zu erstellen, daher kann er nicht direkt in einer React Server Component (RSC) aufgerufen werden. Um die Anmeldung automatisch auszulösen, wenn eine RSC einen nicht autorisierten Benutzer erkennt, rufe `signIn` in einem dedizierten Route-Handler auf und leite zu dieser Route weiter.
113+
:::
114+
115+
```ts title="app/sign-in/route.ts"
116+
import { signIn } from '@logto/next/server-actions';
117+
import { logtoConfig } from '../../logto';
118+
119+
export async function GET() {
120+
await signIn(logtoConfig);
121+
}
122+
```
123+
124+
```tsx title="app/protected/page.tsx"
125+
import { getLogtoContext } from '@logto/next/server-actions';
126+
import { redirect } from 'next/navigation';
127+
import { logtoConfig } from '../logto';
128+
129+
export default async function ProtectedPage() {
130+
const { isAuthenticated } = await getLogtoContext(logtoConfig);
131+
132+
if (!isAuthenticated) {
133+
redirect('/sign-in');
134+
}
135+
136+
return <div>Geschützter Inhalt</div>;
137+
}
138+
```
139+
140+
## Weiterführende Literatur \{#further-readings}
110141

111142
<FurtherReadings />

i18n/es/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router/README.mdx

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
4444

4545
<ApiResourcesDescription />
4646

47-
### Configurar cliente Logto \{#configure-logto-client}
47+
### Configurar el cliente de Logto \{#configure-logto-client}
4848

4949
<ConfigApiResources />
5050

@@ -71,7 +71,7 @@ export default async function Home() {
7171

7272
:::tip
7373

74-
HTTP no permite establecer cookies después de que comienza la transmisión, `getAccessTokenRSC` no puede actualizar el valor de la cookie, por lo que si el token de acceso se actualiza, no se persistirá en la sesión. Se recomienda usar la función `getAccessToken` en el lado del cliente o en los manejadores de rutas.
74+
HTTP no permite establecer cookies después de que comienza el streaming, `getAccessTokenRSC` no puede actualizar el valor de la cookie, por lo que si el token de acceso se actualiza, no se persistirá en la sesión. Se recomienda usar la función `getAccessToken` en el lado del cliente o en los manejadores de rutas.
7575

7676
:::
7777

@@ -98,14 +98,45 @@ export default async function Home() {
9898

9999
:::tip
100100

101-
HTTP no permite establecer cookies después de que comienza la transmisión, `getOrganizationTokenRSC` no puede actualizar el valor de la cookie, por lo que si el token de acceso se actualiza, no se persistirá en la sesión. Se recomienda usar la función `getOrganizationToken` en el lado del cliente o en los manejadores de rutas.
101+
HTTP no permite establecer cookies después de que comienza el streaming, `getOrganizationTokenRSC` no puede actualizar el valor de la cookie, por lo que si el token de acceso se actualiza, no se persistirá en la sesión. Se recomienda usar la función `getOrganizationToken` en el lado del cliente o en los manejadores de rutas.
102102

103103
:::
104104

105105
## Usar almacenamiento de sesión externo \{#use-external-session-storage}
106106

107107
<ExternalStorage />
108108

109+
## Redirección automática al inicio de sesión en caso de no autorizado \{#automatic-sign-in-redirect\}
110+
111+
:::tip
112+
El helper `signIn` modifica las cookies para establecer la sesión de inicio de sesión, por lo que no puede ser invocado directamente en un React Server Component (RSC). Para activar el inicio de sesión automáticamente cuando un RSC detecta un usuario no autorizado, llama a `signIn` en un manejador de ruta dedicado y redirige a esa ruta.
113+
:::
114+
115+
```ts title="app/sign-in/route.ts"
116+
import { signIn } from '@logto/next/server-actions';
117+
import { logtoConfig } from '../../logto';
118+
119+
export async function GET() {
120+
await signIn(logtoConfig);
121+
}
122+
```
123+
124+
```tsx title="app/protected/page.tsx"
125+
import { getLogtoContext } from '@logto/next/server-actions';
126+
import { redirect } from 'next/navigation';
127+
import { logtoConfig } from '../logto';
128+
129+
export default async function ProtectedPage() {
130+
const { isAuthenticated } = await getLogtoContext(logtoConfig);
131+
132+
if (!isAuthenticated) {
133+
redirect('/sign-in');
134+
}
135+
136+
return <div>Contenido protegido</div>;
137+
}
138+
```
139+
109140
## Lecturas adicionales \{#further-readings}
110141

111142
<FurtherReadings />

i18n/fr/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router/README.mdx

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
3636

3737
<Integration />
3838

39-
## Récupérer les informations de l'utilisateur \{#fetch-user-information}
39+
## Récupérer les informations utilisateur \{#fetch-user-information}
4040

4141
<GetUserInformation />
4242

@@ -55,6 +55,7 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
5555
Si vous avez besoin de récupérer un jeton d’accès dans le composant serveur, vous pouvez utiliser la fonction `getAccessTokenRSC` :
5656

5757
```tsx title="app/page.tsx"
58+
// Importations et configuration identiques à l'exemple original
5859
import { getAccessTokenRSC } from '@logto/next/server-actions';
5960
import { logtoConfig } from './logto';
6061

@@ -71,7 +72,7 @@ export default async function Home() {
7172

7273
:::tip
7374

74-
HTTP ne permet pas de définir des cookies après le début du streaming, `getAccessTokenRSC` ne peut pas mettre à jour la valeur du cookie, donc si le jeton d’accès est rafraîchi, il ne sera pas conservé dans la session. Il est recommandé d'utiliser la fonction `getAccessToken` côté client ou dans les gestionnaires de route.
75+
HTTP n’autorise pas la définition de cookies après le début du streaming, `getAccessTokenRSC` ne peut donc pas mettre à jour la valeur du cookie. Ainsi, si le jeton d’accès est rafraîchi, il ne sera pas conservé dans la session. Il est recommandé dutiliser la fonction `getAccessToken` côté client ou dans les gestionnaires de routes.
7576

7677
:::
7778

@@ -82,6 +83,7 @@ HTTP ne permet pas de définir des cookies après le début du streaming, `getAc
8283
Si vous avez besoin de récupérer un jeton d’organisation dans le composant serveur, vous pouvez utiliser la fonction `getOrganizationTokenRSC` :
8384

8485
```tsx title="app/page.tsx"
86+
// Importations et configuration identiques à l'exemple original
8587
import { getOrganizationTokenRSC } from '@logto/next/server-actions';
8688
import { logtoConfig } from './logto';
8789

@@ -98,14 +100,47 @@ export default async function Home() {
98100

99101
:::tip
100102

101-
HTTP ne permet pas de définir des cookies après le début du streaming, `getOrganizationTokenRSC` ne peut pas mettre à jour la valeur du cookie, donc si le jeton d’accès est rafraîchi, il ne sera pas conservé dans la session. Il est recommandé d'utiliser la fonction `getOrganizationToken` côté client ou dans les gestionnaires de route.
103+
HTTP n’autorise pas la définition de cookies après le début du streaming, `getOrganizationTokenRSC` ne peut donc pas mettre à jour la valeur du cookie. Ainsi, si le jeton d’accès est rafraîchi, il ne sera pas conservé dans la session. Il est recommandé dutiliser la fonction `getOrganizationToken` côté client ou dans les gestionnaires de routes.
102104

103105
:::
104106

105107
## Utiliser un stockage de session externe \{#use-external-session-storage}
106108

107109
<ExternalStorage />
108110

109-
## Lectures complémentaires \{#further-readings}
111+
## Redirection automatique vers la connexion en cas d’accès non autorisé \{#automatic-sign-in-redirect\}
112+
113+
:::tip
114+
Le helper `signIn` modifie les cookies pour établir la session de connexion, il ne peut donc pas être invoqué directement dans un React Server Component (RSC). Pour déclencher automatiquement la connexion lorsqu’un RSC détecte un utilisateur non autorisé, appelez `signIn` dans un gestionnaire de route dédié et redirigez vers cette route.
115+
:::
116+
117+
```ts title="app/sign-in/route.ts"
118+
// Importations et configuration identiques à l'exemple original
119+
import { signIn } from '@logto/next/server-actions';
120+
import { logtoConfig } from '../../logto';
121+
122+
export async function GET() {
123+
await signIn(logtoConfig);
124+
}
125+
```
126+
127+
```tsx title="app/protected/page.tsx"
128+
// Importations et configuration identiques à l'exemple original
129+
import { getLogtoContext } from '@logto/next/server-actions';
130+
import { redirect } from 'next/navigation';
131+
import { logtoConfig } from '../logto';
132+
133+
export default async function ProtectedPage() {
134+
const { isAuthenticated } = await getLogtoContext(logtoConfig);
135+
136+
if (!isAuthenticated) {
137+
redirect('/sign-in');
138+
}
139+
140+
return <div>Contenu protégé</div>;
141+
}
142+
```
143+
144+
## Pour aller plus loin \{#further-readings}
110145

111146
<FurtherReadings />

i18n/ja/docusaurus-plugin-content-docs/current/quick-starts/framework/next-app-router/README.mdx

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ sidebar_label: Next.js (App Router)
44
sidebar_custom_props:
55
logoFilename: 'next.svg'
66
darkLogoFilename: 'next-dark.svg'
7-
description: Next.js App Router は、React の最新機能を使用してアプリケーションを構築するための新しいパラダイムです
7+
description: Next.js App Router は、React の最新機能を活用したアプリケーション構築の新しいパラダイムです
88
---
99

1010
import ApiResourcesDescription from '../../fragments/_api-resources-description.md';
@@ -25,8 +25,8 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
2525

2626
## 前提条件 \{#prerequisites}
2727

28-
- [Logto Cloud](https://cloud.logto.io) アカウントまたは [セルフホスト Logto](/introduction/set-up-logto-oss)
29-
- Logto の従来のアプリケーションが作成されていること
28+
- [Logto Cloud](https://cloud.logto.io) アカウント、または [セルフホスト Logto](/introduction/set-up-logto-oss)
29+
- Logto のトラディショナルアプリケーションが作成済みであること
3030

3131
## インストール \{#installation}
3232

@@ -48,11 +48,11 @@ import FetchOrganizationTokenForUser from './api-resources/_fetch-organization-t
4848

4949
<ConfigApiResources />
5050

51-
### API リソースのアクセス トークンの取得 \{#fetch-access-token-for-the-api-resource}
51+
### API リソース用のアクセス トークンの取得 \{#fetch-access-token-for-the-api-resource}
5252

5353
<FetchAccessTokenForApiResources />
5454

55-
サーバーコンポーネントでアクセス トークンを取得する必要がある場合は、`getAccessTokenRSC` 関数を使用できます
55+
サーバーコンポーネントでアクセス トークンを取得する必要がある場合は、`getAccessTokenRSC` 関数を利用できます
5656

5757
```tsx title="app/page.tsx"
5858
import { getAccessTokenRSC } from '@logto/next/server-actions';
@@ -71,15 +71,15 @@ export default async function Home() {
7171

7272
:::tip
7373

74-
HTTP はストリーミングが開始された後にクッキーを設定することを許可していないため`getAccessTokenRSC` はクッキーの値を更新できません。そのため、アクセス トークンが更新されてもセッションに保持されません。クライアント側またはルートハンドラーで `getAccessToken` 関数を使用することをお勧めします
74+
HTTP ではストリーミング開始後に Cookie を設定できないため`getAccessTokenRSC` は Cookie の値を更新できません。そのため、アクセス トークンがリフレッシュされた場合、セッションに永続化されません。クライアントサイドやルートハンドラーでは `getAccessToken` 関数の利用を推奨します
7575

7676
:::
7777

7878
### 組織トークンの取得 \{#fetch-organization-tokens}
7979

8080
<FetchOrganizationTokenForUser />
8181

82-
サーバーコンポーネントで組織トークンを取得する必要がある場合は、`getOrganizationTokenRSC` 関数を使用できます
82+
サーバーコンポーネントで組織トークンを取得する必要がある場合は、`getOrganizationTokenRSC` 関数を利用できます
8383

8484
```tsx title="app/page.tsx"
8585
import { getOrganizationTokenRSC } from '@logto/next/server-actions';
@@ -98,14 +98,45 @@ export default async function Home() {
9898

9999
:::tip
100100

101-
HTTP はストリーミングが開始された後にクッキーを設定することを許可していないため`getOrganizationTokenRSC` はクッキーの値を更新できません。そのため、アクセス トークンが更新されてもセッションに保持されません。クライアント側またはルートハンドラーで `getOrganizationToken` 関数を使用することをお勧めします
101+
HTTP ではストリーミング開始後に Cookie を設定できないため`getOrganizationTokenRSC` は Cookie の値を更新できません。そのため、アクセス トークンがリフレッシュされた場合、セッションに永続化されません。クライアントサイドやルートハンドラーでは `getOrganizationToken` 関数の利用を推奨します
102102

103103
:::
104104

105-
## 外部セッションストレージの使用 \{#use-external-session-storage}
105+
## 外部セッションストレージの利用 \{#use-external-session-storage}
106106

107107
<ExternalStorage />
108108

109-
## さらなる読み物 \{#further-readings}
109+
## 未認可時の自動サインインリダイレクト \{#automatic-sign-in-redirect\}
110+
111+
:::tip
112+
`signIn` ヘルパーはサインインセッションを確立するために Cookie を変更します。そのため、React Server Component (RSC) で直接呼び出すことはできません。RSC で未認可ユーザーを検出した際に自動的にサインインをトリガーするには、専用のルートハンドラーで `signIn` を呼び出し、そのルートへリダイレクトしてください。
113+
:::
114+
115+
```ts title="app/sign-in/route.ts"
116+
import { signIn } from '@logto/next/server-actions';
117+
import { logtoConfig } from '../../logto';
118+
119+
export async function GET() {
120+
await signIn(logtoConfig);
121+
}
122+
```
123+
124+
```tsx title="app/protected/page.tsx"
125+
import { getLogtoContext } from '@logto/next/server-actions';
126+
import { redirect } from 'next/navigation';
127+
import { logtoConfig } from '../logto';
128+
129+
export default async function ProtectedPage() {
130+
const { isAuthenticated } = await getLogtoContext(logtoConfig);
131+
132+
if (!isAuthenticated) {
133+
redirect('/sign-in');
134+
}
135+
136+
return <div>Protected content</div>;
137+
}
138+
```
139+
140+
## さらに読む \{#further-readings}
110141

111142
<FurtherReadings />

0 commit comments

Comments
 (0)