ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฐ์ํ
๐ ๏ธ 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 ์ค์
- Atlassian Developer Portal ์ ์
- OAuth 2.0 ์ฑ ๋ฑ๋ก
- Redirect URI ์ค์ :
- http://localhost:3000/api/auth/callback/atlassian
- ๊ถํ ๋ฒ์(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๊ฐ
๋ฌธ์๊ฐ ๋ค์ ์ด๋ฆฌ๋ฉด ์๋ฌธ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
๋ค์์ผ๋ก ํ ํฐ ๊ฐฑ์ ์ฒ๋ฆฌ๋ ๊ถํ ์ค์ ๋ฌธ์ ํด๊ฒฐ๋ ํ์ํ์๋ฉด ์๋ ค์ฃผ์ธ์! ๐
'framework > NextAuth' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ๏ธ Authentik OAuth Provider ๊ฐ์ (0) | 2025.05.13 |
---|---|
๐ Auth0 OAuth Provider ๊ฐ์ (0) | 2025.05.12 |
๐ Apple OAuth Provider ๊ฐ์ (0) | 2025.05.08 |
โ 42 School OAuth Provider ๊ฐ์ (0) | 2025.05.07 |
โ Next.js์์ NextAuth.js ํตํฉ ์ค์ ๊ฐ์ด๋ ์์ฝ (0) | 2025.04.30 |
โป ์ด ํฌ์คํ
์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค.
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- JAX
- ํ๋ก ํธ์๋๋ฉด์
- nextJS
- ๋ฐฑ์๋๊ฐ๋ฐ
- Webpack
- ์น๊ฐ๋ฐ
- Next.js
- App Router
- PostgreSQL
- Python
- REACT
- CI/CD
- fastapi
- seo ์ต์ ํ 10๊ฐ
- Docker
- ๊ฐ๋ฐ๋ธ๋ก๊ทธ
- SEO์ต์ ํ
- Ktor
- ๋ฅ๋ฌ๋
- kotlin
- AI์ฑ๋ด
- Prisma
- SEO ์ต์ ํ
- rag
- ํ๋ก ํธ์๋
- NestJS
- nodejs
- gatsbyjs
- llm
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
๊ธ ๋ณด๊ดํจ
๋ฐ์ํ