11package umc .codeplay .service ;
22
33import java .security .InvalidParameterException ;
4+ import java .security .SecureRandom ;
45import java .util .List ;
56import java .util .stream .Collectors ;
67import jakarta .transaction .Transactional ;
@@ -36,6 +37,10 @@ public class MemberService {
3637 private final MemberConverter memberConverter ;
3738 private final TrackRepository trackRepository ;
3839
40+ private static final String CHAR_SET =
41+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ;
42+ private static final SecureRandom RANDOM = new SecureRandom ();
43+
3944 public Member joinMember (MemberRequestDTO .JoinDto request ) {
4045
4146 if (memberRepository .findByEmail (request .getEmail ()).isPresent ()) {
@@ -56,6 +61,7 @@ public Member findOrCreateOAuthMember(String email, SocialStatus socialStatus) {
5661 Member .builder ()
5762 .email (email )
5863 .role (Role .USER )
64+ .password (passwordEncoder .encode (generateRandomPassword (10 )))
5965 .socialStatus (socialStatus )
6066 .build ();
6167 return memberRepository .save (member );
@@ -171,4 +177,13 @@ public boolean newPassword(String email, String newPassword) {
171177 memberRepository .save (member );
172178 return true ;
173179 }
180+
181+ public static String generateRandomPassword (int length ) {
182+ StringBuilder sb = new StringBuilder (length );
183+ for (int i = 0 ; i < length ; i ++) {
184+ int index = RANDOM .nextInt (CHAR_SET .length ());
185+ sb .append (CHAR_SET .charAt (index ));
186+ }
187+ return sb .toString ();
188+ }
174189}
0 commit comments