framework/NextAuth
๐ฆ Box OAuth Provider ์ค์ ์์
octo54
2025. 5. 21. 11:33
๋ฐ์ํ
๐ฆ Box OAuth Provider ์ค์ ์์
import NextAuth from "next-auth"
import BoxProvider from "next-auth/providers/box"
export default NextAuth({
providers: [
BoxProvider({
clientId: process.env.BOX_CLIENT_ID,
clientSecret: process.env.BOX_CLIENT_SECRET,
}),
],
})
๐ ํ๊ฒฝ ๋ณ์ ์ค์ (.env)
BOX_CLIENT_ID=your-box-client-id
BOX_CLIENT_SECRET=your-box-client-secret
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret
๐ Box Developer Console ์ค์
๋ฐ์ํ
- https://app.box.com/developers/console ์ ์
- Custom App → OAuth 2.0 with JWT ์ ํ
- Redirect URI ์ถ๊ฐ:
- http://localhost:3000/api/auth/callback/box
- ํด๋ผ์ด์ธํธ ID ๋ฐ ์ํฌ๋ฆฟ ๋ฐ๊ธ
๐งช Access Token ํ์ฉ ์์
async function jwt({ token, account }) {
if (account?.provider === "box") {
token.accessToken = account.access_token
}
return token
}
async function session({ session, token }) {
session.accessToken = token.accessToken
return session
}
๐ง๐ป ์ฌ์ฉ์ ์ ๋ณด ํ์ ์์
import { useSession } from "next-auth/react"
export default function BoxProfile() {
const { data: session } = useSession()
return (
<>
<p>Signed in as {session?.user?.name}</p>
<p>Access Token: {session?.accessToken}</p>
</>
)
}
โ ๏ธ ์ฃผ์์ฌํญ
- Box API๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ ์ ๊ทผ ๋ฐ ๊ถํ ๊ด๋ฆฌ๋ฅผ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์ด ์์ด
์ฌ์ฉ์ ํ๋กํ ์ ๋ณด๊ฐ ์ ํ์ ์ผ ์ ์์ต๋๋ค. - ์ถ๊ฐ์ ์ผ๋ก Box API v2 ์๋ํฌ์ธํธ๋ฅผ ์ฌ์ฉํด ์ฌ์ฉ์ ๋ฐ์ดํฐ ์์ฒญ ํ์
NextAuth Box, Box OAuth ์ฐ๋, Box ๋ก๊ทธ์ธ ๊ตฌํ, Box ํด๋ผ์ด์ธํธ ์ค์ , OAuth2 ํ์ผ API, Box API ์ธ์ฆ, ์ฌ์ฉ์ ์ธ์ ๊ด๋ฆฌ, Next.js Box ํตํฉ, ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง ๋ก๊ทธ์ธ, SEO ์ต์ ํ 10๊ฐ