Skip to content

Commit 26d0e44

Browse files
committed
docs: Translate authentication.md
1 parent 438f2d8 commit 26d0e44

File tree

1 file changed

+39
-39
lines changed

1 file changed

+39
-39
lines changed

docs/authentication.md

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
---
2-
description: Learn about authentication patterns in Next.js apps and explore a few examples.
2+
description: Next.js アプリケーションにおける認証のパターンについて説明し、いくつかの具体例を見ていきます。
33
---
44

5-
# Authentication
5+
# 認証
66

7-
Authentication verifies who a user is, while authorization controls what a user can access. Next.js supports multiple authentication patterns, each designed for different use cases. This page will go through each case so that you can choose based on your constraints.
7+
認証 (authentication) とは「ユーザーが何者であるか」を検証するものであり、一方で認可 (authorization) は「ユーザーがアクセスできるものは何か」を管理するものです。Next.js は複数の認証パターンをサポートしていて、それぞれが異なるユースケースのために設計されています。このページではそれらのユースケースについて紹介していきますので、自分の要件にしたがって適切な方法を選択できるでしょう。
88

9-
## Authentication Patterns
9+
## 認証パターン
1010

11-
The first step to identifying which authentication pattern you need is understanding the [data-fetching strategy](/docs/basic-features/data-fetching/overview.md) you want. We can then determine which authentication providers support this strategy. There are two main patterns:
11+
どの認証パターンが必要か考えるときの最初のステップは、自分がどのような[データ取得](/docs/basic-features/data-fetching/overview.md)方法を取ろうとしているかについて正しく理解することです。それによって、そのデータ取得方法に適切な認証パターンはどれかを判断できます。データ取得方法というのは、主に以下の 2 種類に大別されます:
1212

13-
- Use [static generation](/docs/basic-features/pages.md#static-generation-recommended) to server-render a loading state, followed by fetching user data client-side.
14-
- Fetch user data [server-side](/docs/basic-features/pages.md#server-side-rendering) to eliminate a flash of unauthenticated content.
13+
- [静的生成](/docs/basic-features/pages.md#static-generation-recommended)を利用して、読み込み中の状態をサーバーでレンダリングする方法。その後で、クライアント側でユーザーデータを取得する
14+
- 認証前のコンテンツがフラッシュ (一瞬表示されること) するのを完全に防ぐために、[サーバーサイドで](/docs/basic-features/pages.md#server-side-rendering)ユーザーデータを取得する方法
1515

16-
### Authenticating Statically Generated Pages
16+
### 静的生成されたページの認証
1717

18-
Next.js automatically determines that a page is static if there are no blocking data requirements. This means the absence of [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md) and `getInitialProps` in the page. Instead, your page can render a loading state from the server, followed by fetching the user client-side.
18+
Next.js は、ブロッキングを伴うデータの取得がページに必要ではないとき、そのページが静的生成されたページであることを自動的に判定します。言い換えると、これは、ページに [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md) `getInitialProps` が存在しないことを意味しています。その代わりに、ページは読み込み中の状態を表示し、その後、クライアントサイドでユーザーの取得が実行されます。
1919

20-
One advantage of this pattern is it allows pages to be served from a global CDN and preloaded using [`next/link`](/docs/api-reference/next/link.md). In practice, this results in a faster TTI ([Time to Interactive](https://web.dev/interactive/)).
20+
このパターンの利点の 1 つは、ページをグローバルな CDN から配信し、[`next/link`](/docs/api-reference/next/link.md) によってページの先読みができることです。これは、実用面では TTI ([Time to Interactive](https://web.dev/interactive/)) がより高速になるという効果に繋がります。
2121

22-
Let's look at an example for a profile page. This will initially render a loading skeleton. Once the request for a user has finished, it will show the user's name:
22+
プロフィールページを例として見てみましょう。以下は、まず最初に読み込み中のスケルトン表示をレンダリングします。そして、ユーザーを取得するためのリクエストが完了した時点でユーザーの名前を表示します:
2323

2424
```jsx
2525
// pages/profile.js
@@ -28,15 +28,15 @@ import useUser from '../lib/useUser'
2828
import Layout from '../components/Layout'
2929

3030
const Profile = () => {
31-
// Fetch the user client-side
31+
// クライアントサイドでユーザーを取得する
3232
const { user } = useUser({ redirectTo: '/login' })
3333

34-
// Server-render loading state
34+
// サーバーが読み込み中の状態をレンダリングする
3535
if (!user || user.isLoggedIn === false) {
3636
return <Layout>Loading...</Layout>
3737
}
3838

39-
// Once the user request finishes, show the user
39+
// ユーザー取得リクエストが完了したらユーザーを表示する
4040
return (
4141
<Layout>
4242
<h1>Your Profile</h1>
@@ -48,21 +48,21 @@ const Profile = () => {
4848
export default Profile
4949
```
5050

51-
You can view this [example in action](https://iron-session-example.vercel.app/). Check out the [`with-iron-session`](https://github.com/vercel/next.js/tree/canary/examples/with-iron-session) example to see how it works.
51+
この例を実際に動かして試せるものが[こちら](https://iron-session-example.vercel.app/)にあります。[`with-iron-session`](https://github.com/vercel/next.js/tree/canary/examples/with-iron-session) を見て、これがどのように動作しているかを確認してみてください。
5252

53-
### Authenticating Server-Rendered Pages
53+
### サーバーレンダリングされるページの認証
5454

55-
If you export an `async` function called [`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md) from a page, Next.js will pre-render this page on each request using the data returned by `getServerSideProps`.
55+
[`getServerSideProps`](/docs/basic-features/data-fetching/get-server-side-props.md) という `async` 関数をページで export すると、Next.js はリクエストのたびに、`getServerSideProps` が返すデータを使ってページをプリレンダリングします。
5656

5757
```jsx
5858
export async function getServerSideProps(context) {
5959
return {
60-
props: {}, // Will be passed to the page component as props
60+
props: {}, // props としてページコンポートネントに渡される
6161
}
6262
}
6363
```
6464

65-
Let's transform the profile example to use [server-side rendering](/docs/basic-features/pages#server-side-rendering). If there's a session, return `user` as a prop to the `Profile` component in the page. Notice there is not a loading skeleton in [this example](https://iron-session-example.vercel.app/).
65+
先ほどのプロフィールページの例を[サーバーサイドレンダリング](/docs/basic-features/pages#server-side-rendering)を使うように書き換えてみましょう。もしセッションが有効であれば、`user` が props としてページの `Profile` コンポーネントに渡されます。[この例](https://iron-session-example.vercel.app/)のような読み込み中のスケルトン表示がないことに気づいたでしょうか。
6666

6767
```jsx
6868
// pages/profile.js
@@ -88,7 +88,7 @@ export const getServerSideProps = withSession(async function ({ req, res }) {
8888
})
8989

9090
const Profile = ({ user }) => {
91-
// Show the user. No loading state is required
91+
// ユーザーを表示する。読み込み中の状態は不要
9292
return (
9393
<Layout>
9494
<h1>Your Profile</h1>
@@ -100,38 +100,38 @@ const Profile = ({ user }) => {
100100
export default Profile
101101
```
102102

103-
An advantage of this pattern is preventing a flash of unauthenticated content before redirecting. It's important to note fetching user data in `getServerSideProps` will block rendering until the request to your authentication provider resolves. To prevent creating a bottleneck and increasing your TTFB ([Time to First Byte](https://web.dev/time-to-first-byte/)), you should ensure your authentication lookup is fast. Otherwise, consider [static generation](#authenticating-statically-generated-pages).
103+
このパターンの利点は、認証前のコンテンツがリダイレクト前にフラッシュするのを防ぐことができる点です。ただ、`getServerSideProps` でユーザーデータを取得すると、認証プロバイダーがリクエストを完了するまでの間レンダリングがブロックされるということは認識しておくべきです。これがボトルネックとなってしまい、TTFB ([Time to First Byte](https://web.dev/time-to-first-byte/)) が増加してしまうことを避けるには、認証処理が高速に実行されることを確認しておかなければいけません。もしそうでないのであれば、[静的生成](#authenticating-statically-generated-pages)を検討してください。
104104

105-
## Authentication Providers
105+
## 認証プロバイダー
106106

107-
Now that we've discussed authentication patterns, let's look at specific providers and explore how they're used with Next.js.
107+
ここまで認証のパターンを見てきました。ここからは、具体的な認証プロバイダーと、Next.js でそれらを利用する方法について見ていきます。
108108

109-
### Bring Your Own Database
109+
### 自前のデータベースを利用する
110110

111111
<details open>
112-
<summary><b>Examples</b></summary>
112+
<summary><b></b></summary>
113113
<ul>
114114
<li><a href="https://github.com/vercel/next.js/tree/canary/examples/with-iron-session">with-iron-session</a></li>
115115
<li><a href="https://github.com/nextauthjs/next-auth-example">next-auth-example</a></li>
116116
</ul>
117117
</details>
118118

119-
If you have an existing database with user data, you'll likely want to utilize an open-source solution that's provider agnostic.
119+
ユーザーデータの格納された既存のデータベースがある場合は、特定のプロバイダーに依存しないオープンソースのソリューションを利用するのがよいでしょう。
120120

121-
- If you want a low-level, encrypted, and stateless session utility use [`iron-session`](https://github.com/vercel/next.js/tree/canary/examples/with-iron-session).
122-
- If you want a full-featured authentication system with built-in providers (Google, Facebook, GitHub…), JWT, JWE, email/password, magic links and more… use [`next-auth`](https://github.com/nextauthjs/next-auth-example).
121+
- 低レベルで暗号化されたステートレスなセッションを扱いたいときは [`iron-session`](https://github.com/vercel/next.js/tree/canary/examples/with-iron-session) を利用する
122+
- 組み込みのプロバイダー(GoogleFacebookGitHub...)、JWTJWE、E メール/パスワード、マジックリンクなど、フル機能の認証システムが欲しいときには [`next-auth`](https://github.com/nextauthjs/next-auth-example) を利用する
123123

124-
Both of these libraries support either authentication pattern. If you're interested in [Passport](http://www.passportjs.org/), we also have examples for it using secure and encrypted cookies:
124+
どちらの認証パターンにも上記のライブラリは対応しています。もし、[Passport](http://www.passportjs.org/) に興味があれば、安全で暗号化された cookies を使用した例も用意しています:
125125

126126
- [with-passport](https://github.com/vercel/next.js/tree/canary/examples/with-passport)
127127
- [with-passport-and-next-connect](https://github.com/vercel/next.js/tree/canary/examples/with-passport-and-next-connect)
128128

129-
### Other Providers
129+
### その他のプロバイダー
130130

131-
To see examples with other authentication providers, check out the [examples folder](https://github.com/vercel/next.js/tree/canary/examples).
131+
その他の認証プロバイダーを使った例については、[examples フォルダー](https://github.com/vercel/next.js/tree/canary/examples) を参照ください。
132132

133133
<details open>
134-
<summary><b>Examples</b></summary>
134+
<summary><b></b></summary>
135135
<ul>
136136
<li><a href="https://github.com/vercel/next.js/tree/canary/examples/with-firebase-authentication">with-firebase-authentication</a></li>
137137
<li><a href="https://github.com/vercel/examples/tree/main/solutions/auth-with-ory">auth-with-ory</a></li>
@@ -145,20 +145,20 @@ To see examples with other authentication providers, check out the [examples fol
145145
</ul>
146146
</details>
147147

148-
## Related
148+
## 関連事項
149149

150-
For more information on what to do next, we recommend the following sections:
150+
より理解を深めるために、次は以下のセクションに目を通すことをお勧めします。
151151

152152
<div class="card">
153153
<a href="/docs/basic-features/pages.md">
154-
<b>Pages:</b>
155-
<small>Learn more about pages and the different pre-rendering methods in Next.js.</small>
154+
<b>ページ:</b>
155+
<small>Next.js のページと異なるプリレンダリング方法についてより詳しく学びます</small>
156156
</a>
157157
</div>
158158

159159
<div class="card">
160-
<a href="/docs/basic-features/data-fetching/overview.md">
161-
<b>Data Fetching:</b>
162-
<small>Learn more about data fetching in Next.js.</small>
160+
<a href="/docs/basic-features/data-fetching.md">
161+
<b>データ取得:</b>
162+
<small>Next.js でのデータ取得についてより詳しく学びます</small>
163163
</a>
164164
</div>

0 commit comments

Comments
 (0)