-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #22 from DDD-Community/feature/ITDS-25-apple-socia…
…l-login Feature/itds 25 apple social login
- Loading branch information
Showing
19 changed files
with
382 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
10 changes: 10 additions & 0 deletions
10
src/main/java/com/dissonance/itit/client/AppleInformationFeignClient.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.dissonance.itit.client; | ||
|
||
import org.springframework.cloud.openfeign.FeignClient; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
|
||
@FeignClient(name = "AppleInformationFeignClient", url = "${apple.api_url.information}") | ||
public interface AppleInformationFeignClient { | ||
@GetMapping | ||
String call(); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 6 additions & 0 deletions
6
src/main/java/com/dissonance/itit/domain/enums/SocialLoginProvider.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
package com.dissonance.itit.domain.enums; | ||
|
||
public enum SocialLoginProvider { | ||
KAKAO, | ||
APPLE | ||
} |
39 changes: 39 additions & 0 deletions
39
src/main/java/com/dissonance/itit/dto/response/AppleUserInfomation.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.dissonance.itit.dto.response; | ||
|
||
import com.dissonance.itit.domain.enums.SocialLoginProvider; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.NoArgsConstructor; | ||
import lombok.ToString; | ||
|
||
@Builder | ||
@NoArgsConstructor | ||
@AllArgsConstructor | ||
@ToString | ||
@Getter | ||
public class AppleUserInfomation implements OAuthUserInformation { | ||
private String providerId; | ||
private String email; | ||
|
||
@Override | ||
public SocialLoginProvider getProvider() { | ||
return SocialLoginProvider.APPLE; | ||
} | ||
|
||
@Override | ||
public String getProviderId() { | ||
return providerId; | ||
} | ||
|
||
@Override | ||
public String getProfileImgUrl() { | ||
return null; | ||
} | ||
|
||
@Override | ||
public String getNickname() { | ||
return null; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package com.dissonance.itit.dto.response; | ||
|
||
import java.util.List; | ||
|
||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
|
||
import lombok.Getter; | ||
|
||
@Getter | ||
public class Keys { | ||
@JsonProperty(value = "keys") | ||
private List<Key> keyList; | ||
|
||
@Getter | ||
public static class Key { | ||
private String kty; | ||
private String kid; | ||
private String use; | ||
private String alg; | ||
private String n; | ||
private String e; | ||
} | ||
} |
4 changes: 3 additions & 1 deletion
4
src/main/java/com/dissonance/itit/dto/response/LoginUserInfoRes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,8 @@ | ||
package com.dissonance.itit.dto.response; | ||
|
||
import com.dissonance.itit.domain.enums.SocialLoginProvider; | ||
|
||
public record LoginUserInfoRes( | ||
boolean isAdmin, | ||
String provider) { | ||
SocialLoginProvider provider) { | ||
} |
16 changes: 11 additions & 5 deletions
16
src/main/java/com/dissonance/itit/dto/response/OAuthUserInformation.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,15 @@ | ||
package com.dissonance.itit.dto.response; | ||
|
||
import com.dissonance.itit.domain.enums.SocialLoginProvider; | ||
|
||
public interface OAuthUserInformation { | ||
String getProvider(); | ||
String getProviderId(); | ||
String getProfileImgUrl(); | ||
String getNickname(); | ||
String getEmail(); | ||
SocialLoginProvider getProvider(); | ||
|
||
String getProviderId(); | ||
|
||
String getProfileImgUrl(); | ||
|
||
String getNickname(); | ||
|
||
String getEmail(); | ||
} |
33 changes: 33 additions & 0 deletions
33
src/main/java/com/dissonance/itit/factory/OAuthServiceFactory.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
package com.dissonance.itit.factory; | ||
|
||
import java.util.List; | ||
import java.util.Map; | ||
import java.util.function.Function; | ||
import java.util.stream.Collectors; | ||
|
||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.stereotype.Component; | ||
|
||
import com.dissonance.itit.common.exception.CustomException; | ||
import com.dissonance.itit.common.exception.ErrorCode; | ||
import com.dissonance.itit.domain.enums.SocialLoginProvider; | ||
import com.dissonance.itit.service.OAuthService; | ||
|
||
@Component | ||
public class OAuthServiceFactory { | ||
private final Map<SocialLoginProvider, OAuthService> oAuthServices; | ||
|
||
@Autowired | ||
public OAuthServiceFactory(List<OAuthService> oAuthServiceList) { | ||
oAuthServices = oAuthServiceList.stream() | ||
.collect(Collectors.toMap(OAuthService::getProvider, Function.identity())); | ||
} | ||
|
||
public OAuthService getOAuthService(SocialLoginProvider provider) { | ||
OAuthService service = oAuthServices.get(provider); | ||
if (service == null) { | ||
throw new CustomException(ErrorCode.INVALID_PROVIDER); | ||
} | ||
return service; | ||
} | ||
} |
11 changes: 7 additions & 4 deletions
11
src/main/java/com/dissonance/itit/repository/UserRepository.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,14 @@ | ||
package com.dissonance.itit.repository; | ||
|
||
import com.dissonance.itit.domain.entity.User; | ||
import java.util.Optional; | ||
|
||
import org.springframework.data.jpa.repository.JpaRepository; | ||
|
||
import java.util.Optional; | ||
import com.dissonance.itit.domain.entity.User; | ||
import com.dissonance.itit.domain.enums.SocialLoginProvider; | ||
|
||
public interface UserRepository extends JpaRepository<User, Long> { | ||
boolean existsByProviderAndProviderId(String provider, String providerId); | ||
Optional<User> findByEmail(String email); | ||
boolean existsByProviderAndProviderId(SocialLoginProvider provider, String providerId); | ||
|
||
Optional<User> findByEmail(String email); | ||
} |
Oops, something went wrong.