윈도우10 비밀번호 해제 하여 손쉽게 로그인하기

윈도우10 비밀번호 해제 하여 손쉽게 로그인하기

저는 현재 서버를 배포하지 않고 로컬에서 작업하고 있다고 해서 Hompage URL은 httplocalhost8080으로 해줬습니다. Authorization callback URL에는 로그인 후 돌아갈 즉 redirect url을 입력해주세요 Register application을 누르고 바로 다음 화면에서 Generate a new client secret을 클릭하시면 토큰이 발급됩니다.


Configuration
Configuration

Configuration

Email, Nickname 과 같은 프로필 정보나 인증 타입을 갖고 있습니다. 작업 성격에 따라 회원 Member 도메인과 인증 Authentication 도메인을 분리하는 경우도 있으니 이 부분은 설계하기에 따라 바뀔 수 있습니다. 6. 외부 API 요청

외부 API 요청을 위한 Client 클래스를 만들어봅니다. API 요청을 위해 RestTemplate 을 사용했지만, 선호도에 따라 다른 걸 사용해도 됩니다.

인터페이스를 많이 사용했는데 다음과 같은 혜택이 있습니다.

OAuthLoginService
OAuthLoginService

OAuthLoginService

카카오네이버와 같은 OAuth 플랫폼에 인증 후 프로필 정보 불러오기 email 정보로 사용자 확인 없으면 새로 가입처리 Access Token 생성 후 내려주기 취향에 따라 findOrCreateMember 부분을 별도 MemberService 로 분리해도 상관없습니다. 코드를 보시면 알 수 있듯이 네이버, 카카오에 특화된 로직이 아닌 공통적으로 로직이며 인터페이스만을 사용했습니다. 대신 login 메서드 호출 시 KakaoLoginParams, NaverLoginParams 둘 중에 뭐가 들어오냐에 따라 API 요청하는 곳이 달라집니다.

만약 새로운 Google, Facebook 로그인이 추가된다고 하더라도 이 코드는 수정할 필요가 없기 때문에 안전하게 추가 가능합니다.

RequestOAuthInfoService

참조하여 List 를 주입받으면 해당 인터페이스의 구현체들이 모두 List 에 담겨옵니다. 7. JWTAccess Token 생성

네이버, 카카오 인증이 완료되면 클라이언트에게 Access Token 을 내려주어야 합니다. 이곳에서 Access Token 은 내 서비스의 인증 토큰이지, 네이버나 카카오의 토큰이 아닙니다. OAuth 플랫폼들의 Access Token 을 클라이언트에게 내려주면 플랫폼 별로 만료 기간 관리도 번거롭고 혹여나 탈취라도 당하면 안되기 때문에 반드시 직접 토큰을 만들어서 내려줍니다.

JWT 연관 부분은 이 글의 핵심 주제는 아니기 때문에 구체적인 설명은 생략합니다.

자동 로그인 설정하기

윈도우10 비밀번호 해제를 했더라도, 윈도우 로그인 화면이 나오긴 합니다. 그때 그냥 확인을 눌러주시면 윈도우에 진입하게 됩니다. 하지만 그 화면조차 뜨는 시간이 아깝죠? 바로 윈도우로 진입하게 만들 수 있는 방법이 있습니다. 윈도우키를 눌러주신 후에 netplwiz를 검색해 주시면 사용자 계정 설정 메뉴가 나오게 됩니다. 사용자 탭에 있는 사용자 이름, 암호를 입력해야 전자기기를 사용할 수 있음 이라는 부분이 보이실 겁니다.

이 부분에 체크가 되어있었다면 해제를 해주시면 됩니다. 그 다음 확인을 클릭하시면 자동 로그인에 대한 암호를 입력하라 나오는데요. 이곳에서 윈도우 로컬 계정의 암호를 입력해 주면 됩니다. 윈도우10 비밀번호 해제를 해두었기 때문에 공란으로 놔둔 채 확인을 누르셔도 됩니다. 위의 설정들을 하셨다면, 이제 피시를 켰을 때 윈도우 로그인 화면조차 없이 바로 윈도우에 진입하실 수 있습니다.

자주 묻는 질문

Configuration

Email Nickname 과 같은 프로필 정보나 인증 타입을 갖고 있습니다. 궁금한 사항은 본문을 참고하시기 바랍니다.

카카오네이버와 같은 OAuth 플랫폼에 인증 후 프로필 정보 불러오기 email 정보로 사용자 확인 없으면 새로 가입처리 Access Token 생성 후 내려주기 취향에 따라 findOrCreateMember 부분을 별도 MemberService 로 분리해도 상관없습니다. 구체적인 내용은 본문을 참고 해주시기 바랍니다.

참조하여 List 를 주입받으면 해당 인터페이스의 구현체들이 모두 List 에 담겨옵니다. 구체적인 내용은 본문을 참고하세요.