@@ -91,7 +91,85 @@ export declare namespace NextServer {
91
91
}
92
92
93
93
export interface CreateServerRunnerOutput {
94
+ /**
95
+ * The function to run an operation with the Amplify server context. The operation is a callback function that
96
+ * takes a context spec parameter which is used to call the Amplify-side server APIs. The result of the operation
97
+ * is returned as a promise.
98
+ *
99
+ * @example
100
+ * ```
101
+ * // In `src/amplifyUtils.ts`
102
+ * import { createServerRunner } from 'aws-amplify/adapter-nextjs';
103
+ * import outputs from '@/amplify_outputs.json';
104
+ *
105
+ * export const { runWithAmplifyServerContext } = createServerRunner({ config: outputs });
106
+ *
107
+ * // In `src/app/home/page.tsx` (App router)
108
+ * import { cookies } from 'next/headers';
109
+ * import { runWithAmplifyServerContext } from '@/amplifyUtils';
110
+ *
111
+ * export default async function HomePage() {
112
+ * const user = await runWithAmplifyServerContext({
113
+ * nextServerContext: { cookies },
114
+ * operation: (contextSpec) => getCurrentUser(contextSpec),
115
+ * });
116
+ *
117
+ * return <div>{`Hello, ${user.username}`}</div>;
118
+ * }
119
+ *
120
+ * // In `src/pages/home/index.tsx` (Pages router)
121
+ * import { runWithAmplifyServerContext } from '@/amplifyUtils';
122
+ *
123
+ * export const getServerSideProps = async ({ req, res }) => {
124
+ * const user = await runWithAmplifyServerContext({
125
+ * nextServerContext: { request: req, response: res },
126
+ * operation: (contextSpec) => getCurrentUser(contextSpec),
127
+ * });
128
+ *
129
+ * return {
130
+ * props: { user },
131
+ * }
132
+ * }
133
+ *
134
+ * export default function HomePage(props) {
135
+ * return <div>{`Hello, ${props.user.username}`}</div>;
136
+ * }
137
+ * ```
138
+ */
94
139
runWithAmplifyServerContext : RunOperationWithContext ;
140
+ /**
141
+ * The factory function to create the route handlers for the Amplify server-side authentication. You can call this
142
+ * function and export the result as the route handlers in the Next.js API routes, to authenticate your end users
143
+ * on the server side.
144
+ *
145
+ * Note: when enabling server-side authentication, Amplify APIs can no longer be used in the client-side.
146
+ * @experimental
147
+ *
148
+ * @example
149
+ * ```
150
+ * // In `src/amplifyUtils.ts`
151
+ * import { createServerRunner } from 'aws-amplify/adapter-nextjs';
152
+ * import outputs from '@/amplify_outputs.json';
153
+ *
154
+ * export const { createAuthRouteHandlers } = createServerRunner({ config: outputs });
155
+ *
156
+ * // In `src/app/api/auth/[slug]/route.tsx` (App router)
157
+ * import { createAuthRouteHandlers } from '@/amplifyUtils';
158
+ *
159
+ * export const GET = createAuthRouteHandlers({
160
+ * redirectOnSignInComplete: "/home",
161
+ * redirectOnSignOutComplete: "/sign-in",
162
+ * );
163
+ *
164
+ * // In `src/pages/api/auth/[slug].tsx` (Pages router)
165
+ * import { createAuthRouteHandlers } from '@/amplifyUtils';
166
+ *
167
+ * export default createAuthRouteHandlers({
168
+ * redirectOnSignInComplete: "/home",
169
+ * redirectOnSignOutComplete: "/sign-in",
170
+ * });
171
+ * ```
172
+ */
95
173
createAuthRouteHandlers : CreateAuthRouteHandlers ;
96
174
}
97
175
0 commit comments