No release in over 3 years
A Ruby gem providing OmniAuth OAuth2 strategy for Kakao authentication. Unlike other Kakao OAuth gems, this properly includes client_secret in the request body as required by Kakao's API specification.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 2.0
~> 5.0
~> 13.0
~> 1.21

Runtime

 Project Readme

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: 'john@example.com', # 이메일이 username으로도 제공됨
    email: 'john@example.com',
    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