feat(auth) : OAuth2 인증 관련 컴포넌트 추가

This commit is contained in:
banjjoknim
2022-03-06 02:18:27 +09:00
parent 897f023ef5
commit 639d51eb28
2 changed files with 68 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
package com.banjjoknim.playground.domain.auth
interface OAuth2UserInfo {
fun getProviderId(): String
fun getProvider(): String
fun getEmail(): String
fun getName(): String
}

View File

@@ -0,0 +1,56 @@
package com.banjjoknim.playground.domain.auth
class GoogleUserInfo(
/**
* DefaultOAuth2Service#loadUser(OAuth2UserRequest)
* ```kotlin
* val oAuth2User = super.loadUser(userRequest)
* val attributes = oAuth2User.attributes
* ```
*/
private val attributes: Map<String, Any?>
) : OAuth2UserInfo {
override fun getProviderId(): String {
return attributes["sub"] as String
}
override fun getProvider(): String {
return "google"
}
override fun getEmail(): String {
return attributes["email"] as String
}
override fun getName(): String {
return attributes["name"] as String
}
}
class FacebookUserInfo(
/**
* DefaultOAuth2Service#loadUser(OAuth2UserRequest)
* ```kotlin
* val oAuth2User = super.loadUser(userRequest)
* val attributes = oAuth2User.attributes
* ```
*/
private val attributes: Map<String, Any?>
) : OAuth2UserInfo {
override fun getProviderId(): String {
return attributes["id"] as String
}
override fun getProvider(): String {
return "facebook"
}
override fun getEmail(): String {
return attributes["email"] as String
}
override fun getName(): String {
return attributes["name"] as String
}
}