OmniAuth Kakao OAuth2

카카오 인증을 위한 올바른 OmniAuth OAuth2 strategy를 제공하는 Ruby gem입니다. 카카오 API 명세에 따라, client_secret을 헤더가 아닌 요청 본문에 포함합니다.

설치

gem install omniauth-kakao-oauth2

사용법

Rails 설정

# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  # 기본
  provider :kakao, ENV['KAKAO_CLIENT_ID']

  # + Options
  provider :kakao, ENV['KAKAO_CLIENT_ID'], {
    scope: 'profile_nickname,profile_image,account_email',
    redirect_url: 'http://localhost:3000/auth/kakao/callback'
  }

  # + Client Secret
  provider :kakao, ENV['KAKAO_CLIENT_ID'], ENV['KAKAO_CLIENT_SECRET']

  # + Client Secret & Options
  provider :kakao, ENV['KAKAO_CLIENT_ID'], ENV['KAKAO_CLIENT_SECRET'], {
    scope: 'profile_nickname,profile_image,account_email',
    redirect_url: 'http://localhost:3000/auth/kakao/callback'
  }

end

인증 해시

# request.env['omniauth.auth']
{
  provider: 'kakao',
  uid: '123456789',
  info: {
    name: 'John Doe',
    username: '[email protected]', # 이메일이 username으로도 제공됨
    email: '[email protected]',
    image: 'https://...',
    nickname: 'johndoe'
  },
  credentials: {
    token: 'ACCESS_TOKEN',
    expires_at: 1234567890,
    expires: true
  },
  extra: {
    raw_info: { ... },
    kakao_account: { ... },
    properties: { ... }
  }
}

Contribute

버그 신고와 PR은 https://github.com/GoCoder7/omniauth-kakao-oauth2 로 부탁드립니다.

License

MIT