passport-*パッケージのauth 2.0ログイン時に受信したプロファイルキー情報


google
passport-google-oauth20のプロファイルマッピング-ショートカット
Google API Console
{
  id: ~~~
  displayName: ~~~
  name: {
    familyName: ~~,
    givenName: ~~~~,
  }
  emails: [ { value: json.email, verified: json.email_verified } ]
  photos: [{ value: json.picture || json.image.url }]
  provider: google,
  _raw: "",  // JSON 문자열. _json과 동일하므로 생략
  _json: {
    sub: "~~~",
    name: "~~~",
    given_name: "~~",
    family_name: "~",
    picture: "~~~~~~",
    email: "[email protected]",
    email_verified: true,
    locale: "ko"
  }
}
naver
passport-naverのプロファイルマッピング-ショートカット
2021年4月13日、naverはユーザー名を「name」として提供したが、passport-naverは「ニックネーム」のみを提供した.displayNameとprofile.json.ニックネームで指定します.これについてのissueもあります.
必要に応じて、Naver Developersから提供される情報の種類を確認してください.
// 수정 후
{
  provider: naver
  id: ~~~
  displayName: ~~~
  emails: [~~]
  _json: {
    email: "[email protected]",
    nickname: "~~~",
    profile_image: "~~~~~~",
    age: ~~,
    birthday: "~~~"
    id: "~~~",
  }
}
kakao
passport-kakaoのプロファイルマッピング-ショートカット
Kakao Developersで提供されているフォーマットの情報を見てみましょう.
{
  provider: kakao
  id: ~~~
  displayName: ~~~
  _json: {
    id: ~~~,
    connected_at: "2021-04-13T08:59:33Z",
    properties: {
      nickname: "~~~"
    },
    kakao_account: {
      profile_needs_agreement: false,
      profile: {
        nickname: "~~~",
        profile_image: "~~~",
      },
      has_email: true,
      email_needs_agreement: false,
      is_email_valid: true,
      is_email_verified: true,
      email: "[email protected]"
    }
  }
}
サマリ
Googleは実名を提供し、kakaoは別名を提供し、naverは両者を提供している.
しかしnaverはpassport-naverではニックネームのみを使用しているためkakaoと変わらない.実名が必要な場合は、SNSに登録した後、名前と本人認証を求める方法を考えるべきです.