framework/NextAuth

๐Ÿ› ๏ธ Atlassian OAuth Provider ๊ฐœ์š”

octo54 2025. 5. 9. 11:08
๋ฐ˜์‘ํ˜•

 

๐Ÿ› ๏ธ Atlassian OAuth Provider ๊ฐœ์š”

Atlassian OAuth Provider๋Š” Jira, Confluence, Bitbucket ๋“ฑ Atlassian ์ œํ’ˆ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
OAuth 2.0 ๊ธฐ๋ฐ˜์œผ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ Atlassian ๊ณ„์ •์„ ํ†ตํ•ด ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ“ฆ ์„ค์ • ์˜ˆ์‹œ (pages/api/auth/[...nextauth].ts)

import NextAuth from "next-auth"
import AtlassianProvider from "next-auth/providers/atlassian"

export default NextAuth({
  providers: [
    AtlassianProvider({
      clientId: process.env.ATLASSIAN_CLIENT_ID,
      clientSecret: process.env.ATLASSIAN_CLIENT_SECRET,
    }),
  ],
})

๐Ÿ“‘ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ • (.env)

ATLASSIAN_CLIENT_ID=your-atlassian-client-id
ATLASSIAN_CLIENT_SECRET=your-atlassian-client-secret
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-nextauth-secret

๐ŸŒ Atlassian Developer Console ์„ค์ •

  1. Atlassian Developer Portal ์ ‘์†
  2. OAuth 2.0 ์•ฑ ๋“ฑ๋ก
  3. Redirect URI ์„ค์ •:
  4. http://localhost:3000/api/auth/callback/atlassian
  5. ๊ถŒํ•œ ๋ฒ”์œ„(Scope) ์„ค์ •:
    • read:user
    • account:read
    • offline_access

๐Ÿ”‘ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด ํ™•์ธ

  • Client ID์™€ Client Secret์€ Atlassian Developer Console์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ˜๋“œ์‹œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ ๊ด€๋ฆฌํ•˜์—ฌ ๋ณด์•ˆ ๊ฐ•ํ™”

๐Ÿชช ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ

async function jwt({ token, account }) {
  if (account?.provider === "atlassian") {
    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 Profile() {
  const { data: session } = useSession()
  return (
    <>
      <p>Signed in as {session?.user?.name}</p>
      <p>Access Token: {session?.accessToken}</p>
    </>
  )
}

โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ

  • Atlassian OAuth๋Š” ์ธ์ฆ ํ›„ JWT ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ํ† ํฐ ๋งŒ๋ฃŒ ์‹œ ์ž๋™ ๊ฐฑ์‹ ์ด ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ, refresh token์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

NextAuth Atlassian, Jira ๋กœ๊ทธ์ธ, Confluence ์ธ์ฆ, OAuth2 Next.js, Atlassian Client ID ์„ค์ •, Atlassian OAuth ์„ค์ •, Bitbucket ๋กœ๊ทธ์ธ, ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๊ธฐ, ์ธ์ฆ ํ† ํฐ ๊ด€๋ฆฌ, SEO ์ตœ์ ํ™” 10๊ฐœ


๋ฌธ์„œ๊ฐ€ ๋‹ค์‹œ ์—ด๋ฆฌ๋ฉด ์›๋ฌธ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‹ค์Œ์œผ๋กœ ํ† ํฐ ๊ฐฑ์‹  ์ฒ˜๋ฆฌ๋‚˜ ๊ถŒํ•œ ์„ค์ • ๋ฌธ์ œ ํ•ด๊ฒฐ๋„ ํ•„์š”ํ•˜์‹œ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”! ๐Ÿ˜Š