@plott/webkit-auth-provider-kakao0.4.0
@plott/webkit-auth-oauth 제공자 — 카카오 로그인(OIDC)
설치
pnpm
pnpm add @plott/webkit-auth-provider-kakao@0.4.0진입점(exports)
| import | 타입 | 파일 |
|---|---|---|
@plott/webkit-auth-provider-kakao | ./dist/index.d.ts | ./dist/index.js |
@plott/webkit-auth-oauth 용 카카오 로그인(OIDC) 정의입니다.
진입점
| 진입점 | 실행 위치 | 내보내는 것 |
|---|---|---|
@plott/webkit-auth-provider-kakao | 서버 | kakao, kakaoClaims, 타입 KakaoOptions |
붙이기
ts
import { kakao } from "@plott/webkit-auth-provider-kakao";
kakao({ clientId: process.env.KAKAO_REST_API_KEY!, clientSecret: process.env.KAKAO_CLIENT_SECRET, scope: "openid profile_nickname" })| 옵션 | 기본값 / 뜻 |
|---|---|
clientId | REST API 키 |
clientSecret | 콘솔에서 Client Secret 을 쓰는 경우만. 없으면 퍼블릭 클라이언트로 client_id 만 보냅니다 |
scope | openid. 동의 항목(profile_nickname, account_email 등)을 더합니다 |
nativeToken | id_token |
exchangeToken | 지정하지 않음 |
issuer | https://kauth.kakao.com |
id | kakao |
extraAuthParams | 없음 |
clientAuth | post. 토큰 엔드포인트 클라이언트 인증 방식(basic·post·none) |
embeddedWebView | allowed |
한국 서비스(카카오)용 패키지입니다. 다른 로그인 수단과 달리 필요한 앱만 설치해 씁니다.
redirect_uri <origin>/auth/callback/kakao 를 콘솔에 등록합니다.
kakaoClaims() 는 표준 클레임 매퍼에 nickname 을 표시 이름으로 더한 PrincipalMapper 입니다. kakao 가 이 매퍼를 principal 로 씁니다.
기본으로 지키는 것
- 카카오 토큰 엔드포인트는
client_secret을 본문으로 받으므로clientAuth는post입니다. - 카카오 id_token 은 표시 이름을
name이 아니라nickname(profile_nickname 동의 항목)에 둡니다.name이 있으면name이 우선이고, 문자열이 아닌nickname은 무시합니다. - id_token 은 카카오 디벨로퍼스 콘솔에서 OpenID Connect 를 켠 앱만 받습니다. 켜지 않은 앱은
exchangeToken·nativeToken을access_token으로 두고, 인증 서버(AS)가 카카오 사용자 정보 API 로 확인합니다. - 앱 WebView 안의 웹 로그인을 허용합니다(
embeddedWebView: "allowed").
그 밖
peer: @plott/webkit-auth, @plott/webkit-auth-oauth.