Ios에서 카카오자동로그인

ID : 1088210
JS 2.7.2 / RN Webview

  $(document).ready(function() 
    {
         ...
       	if(boolAutoLogin)
       	{
		  	setCookie(function() {
                Kakao.Auth.authorize({
                    redirectUri	: redirectUri,
                });
            });
       	}
       	
		$("#kakaoLoginBtn").off("click").on("click", function(event) {
		  	
		  	if($(this).hasClass('disabled')) 
		  	{
            	event.preventDefault();
            	return;
        	}
        	
		  	$(this).addClass('disabled');
		  	
		    setCookie(function() {
                Kakao.Auth.authorize({
                    redirectUri	: redirectUri,
                });
            });
		});
		
    });

ios에서 처음 로그인 시 앱작동 후 로그인 진행이 제대로 됩니다.
다만 앱 종료 후에 서버에서 저희 쪽 쿠키를 확인한 후 쿠기가 있을 경우 login.jsp 진입 시 Kakao.Auth.authorize()를 바로 호출하는데 아이디와 비번 치는 창이 뜹니다.
거기서 아이디와 비번 입력해서 로그인 한 후에는 Kakao.Auth.authorize()가 제대로 작동합니다. 자동으로 로그인이 잘 진행됩니다.
Kakao.Auth.authorize() 호출 후에 사용자 정보와 토큰은 REST API로 리다이렉트된 uri내에서 처리합니다.
왜 처음 로그인 한 후에 앱 종료 후 앱을 다시 실행 시 아이디와 비번치는 창이 뜨는건가요?

Kakao.Auth.authorize()를 바로 호출

사용자 액션없이 실행한 스크립트가 외부앱(카카오톡)을 호출하면 브라우저에서 차단합니다.
즉, Kakao.Auth.authorize() 실행으로 유니버셜링크를 호출하게되고 실행실패하여 카카오 계정 페이지로 이동한듯하네요.

카카오 로그인은 사용자 액션에의해 진행되도록하시고
카카오로그인과 별개로 카카오로그인 이후 운영하시는 서비스에 로그인 처리 하실테니

쿠키가 있으면 서비스측 로그인 처리 하시면 좋을 것 같습니다.

사용자 동작없이 유니버셜 링크를 호출하는 것이 잘못된 거라면 두번째에 아이디와 비번 입력 후에는 왜 정상작동 하는 건가요?
그 이후에는 저 ready 에 있는 함수가 제대로 호출되고 인가코드가 들어옵니다.
앱을 통해 로그인하는 것과 아이디와 비번을 직접 입력해서 로그인하는 과정에 차이가 있는건가요?
그리고 저희가 인가코드를 사용하는 이유가 access_token을 갱신하기 위함인데
저희 쪽 쿠기만 사용했을 시에는 access_token을 갱신할 방법이 없지않나요?

두번째에 아이디와 비번 입력 후에는 왜 정상작동 하는 건가요?
앱을 통해 로그인하는 것과 아이디와 비번을 직접 입력해서 로그인하는 과정에 차이가 있는건가요?

아이디와 비번을 입력하는 카카오계정 로그인 페이지에서는 유니버셜링크를 호출하지 않습니다.

그리고 저희가 인가코드를 사용하는 이유가 access_token을 갱신하기 위함인데
저희 쪽 쿠기만 사용했을 시에는 access_token을 갱신할 방법이 없지않나요?

회원가입 이후에 카카오측 어떤 API 를 호출하시나요?

이용자가 카카오 로그인 하는 것은 access_token을 새로 받는 행동이고,
access_token갱신은 refresh_token으로 하므로 인가코드요청을 할 필요 없습니다.

아이디와 비번을 입력하는 카카오계정 로그인 페이지에서는 유니버셜링크를 호출하지 않습니다.

이 말이 이해가 안됩니다. 아이디와 비번을 쳐서 로그인한 이후에 다시 앱 실행 시에

if(boolAutoLogin)
       	{
		  	setCookie(function() {
                Kakao.Auth.authorize({
                    redirectUri	: redirectUri,
                });
            });
       	}

이 코드가 실행되는 건 똑같은데 그때는 자동 로그인 처리가 이뤄지는것이 이해가 안됩니다.

(1) 쿠키가 없을때

사용자 액션으로
Kakao.Auth.authorize 실행 유니버셜링크 호출

카카오톡 실행으로 인가 코드 발급

(2) 쿠키가 있을때

사용자 액션없이
Kakao.Auth.authorize 실행 유니버셜링크 호출 → 실패

카카오 계정 로그인 페이지로 이동


카카오 계정 로그인 페이지진입은 유니버셜링크로 이미 앱호출 실패한 이후 진입합니다.

그렇다면 말씀하신것으로 판단한다면
처음 사용자동작 없이 앱링크 호출 후 실패로 판단하고 계정 로그인페이지 뜬 후에
계정입력하여 로그인 진행한 이후에
앱 다시 재실행시에는
앱링크를 호출하는 과정이 진행이 안되고 바로 인가코드발급으로 진행된다고 판단하면 되는건가요?

네, 앱내 웹뷰에 카카오계정페이지 세션이 남아있어 로그인 할 필요 없다면 아래와 같이 처리됩니다.

(3) 쿠키가 있을때 + 카카오계정페이지 세션이 있을때

사용자 액션없이
Kakao.Auth.authorize 실행 유니버셜링크 호출 → 실패

카카오 계정 로그인 페이지로 이동-> 이미 로그인처리

인가코드요청으로 리다이렉트 URI 진입.


앱링크를 호출하는 과정이 진행이 안되고 바로 인가코드발급으로 진행된다고 판단하면 되는건가요?

과정이 생략되는 경우는 없습니다.