간편로그인을 적용했는데 최초에 아이디/비번을 물어봅니다

ID 660031
게시판에서 미리 검색을 해보았는데 동일한 질문이 없어서 질문을 올립니다.

모바일웹으로 구현되었습니다.
로그인을 해야 할 상황이 오면 아래 그림처럼 카카오로 로그인 버튼을 만들어놓고
클릭하면 카카오로 로그인을 합니다.
근데 바로 로그인이 안되고 아이디와 비밀번호를 물어봅니다.
Screenshot_20221120-173258_Chrome

Screenshot_20221120-162939_Samsung Internet

위와 같이 물어보는데 이게 상당히 불편합니다.

그런데 이게 한번 로그인하면 다음부터는 세션이 끊기더라도 로그인을 할 상황이 와서 다시 로그인 버튼을 누르면 (저희 페이지에 있는 로그인 페이지) 아이디 비밀번호 없이 카카오 로그인이 됩니다.
그리고 한 두시간 후에 다시 로그인해봐도 물어보지 않고 로그인 됩니다.
로그아웃 했다가 다시 로그인해도 물어보지 않습니다.
근데 다음날 아침 혹은 시간은 대중할 수 없지만 오랜 시간이 흐른 뒤 다시 로그인하면 아이디와 비밀번호를 물어봅니다.

바로 로그인이 안되면 차라리 아래와 같이라도 되었으면 하는데
Screenshot_20221120-102952_Chrome

어찌됬든
저희 페이지에서 카카오로로그인이나 카카오톡으로로그인이나 버튼을 클릭하면 아이디/비번을 물어보지 않고 로그인을 할 수 있었으면 좋겠습니다.

저희가 뭐를 잘 못했을까요?

안녕하세요.

로그인 재현 해볼 수 있는 URL좀 알려주세요.
(JS SDK 를 이용한 로그인 시도 했지만, ID/PW입력 없이 카카오톡 앱으로 인증할 수 없는 상황으로 보입니다.)

JS SDK authorize방식을 사용하면 카카오톡으로 로그인이 가능한 상황에 톡으로 로그인 먼저합니다.
해당 모바일 기기가 카카오톡으로 로그인 할 수 없는 상황이라면 첨부하신 이미지처럼 ID/PW입력 화면이표시됩니다.

바로 로그인이 안되면 차라리 아래와 같이라도 되었으면 하는데

위에 첨부하신 방식은 REST-API방식 카카오 로그인입니다.
서비스측 개별 인앱브라우저에서는 "카카오톡으로 로그인"을 표시하지 않지만 크롬 같은 기본 브라우저에서는 해당 버튼을 표시합니다. 하지만, 이역시, 카카오 톡으로 로그인할 수 없는 상황이라면 버튼이 작동하지 않습니다.

Url은 수정한 후 올려드리겠습니다.

그전에

(JS SDK 를 이용한 로그인 시도 했지만, ID/PW입력 없이 카카오톡 앱으로 인증할 수 없는 상황으로 보입니다.)

이 말의 의미가 뭘까요?
카카오로그인페이지로 바로 이동하던지
Js sdk로 로그인 함수를 사용하던지 어떤 형태이든
Id pwd 를 물어보거든요.

분명히 카카오톡 앱은 실행되어있고 로그인도 되어 있는데요 ㅠ

ID/PW입력 없이 바로 카카오 로그인 하는 방법은 JS SDK, authorize를 이용하는 방법밖에 없습니다.

카카오로그인페이지로 바로 이동하던지

이방법은 대안이 될 수 없구요.

Js sdk로 로그인 함수를 사용하던지 어떤 형태이든 Id pwd 를 물어보거든요.

이 경우라면, 해당 기기에 카카오톡 앱을 이용해서 인증할 수 없는 상황이 있을것으로 보입니다.

원인 파악을 위해 앱ID, 재현가능한 URL알려주시면 확인해보겠습니다.

https://uat.untactm.kr/login/home 입니다.

KOE006 에러가 발생하고 있습니다.
설정하신 리다이렉트 URI와 동일하게 디벨로퍼스 설정에도 등록 부탁드립니다.

이와 별개로 카카오톡 앱으로 로그인 잘되는 것을 확인했습니다.
테스트하신 기기에 카카오톡 앱 설치 및 로그인 되어있나요?

빠른 답변 진심으로 감사드립니다.
뭔가 내부적으로 더 수정해야 해서 수정한 후 해결되든 해결이 안되든 다시 답글 달겠습니다.

좋아요 1

해결된 것 같습니다. 감사합니다.
일단 저는 이제 개발을 하지 않지만 개발자여도 헷갈릴 수 있는 내용들이 있어서 몇 자 적어봅니다.

간편로그인: 웹/앱 등에서 카카오로그인을 하면 아이디/비번을 물어보지 않고 카카오로그인
자동로그인: 카카오톡에서 실행되는 인앱브라우저의 경우 로그인을 물어보지 않고도 카카오로그인
카카오싱크: 간편로그인 기능 + 제공되는 사용자 정보 추가 + 채널 등 다양한 기능 제공

간편로그인 절차(모바일 웹 기준, 자체 회원관리를 하지 않는 경우)

  1. 회사: 모바일 웹에서 로그인 버튼 클릭
  2. 카카오: 인증모듈이 카카오가 설치+로그인 되어 있는지 확인
  3. 카카오: 설치+로그인되어 있다면 로그인 정보 등과 함께 미리 설정해 놓은 콜백 페이지로 이동
    3-1.카카오: 설치가 안되어 있거나 로그인이 안되어 있는 경우 카카오의 로그인 페이지 실행
    3-2. 카카오: 사용자가 계정/비번 입력 후 로그인하면 미리 설정해 놓은 콜백 페이지로 이동
    3-0.카카오: 간편로그인을 시도할 때 카카오앱에 회사 모바일웹이 등록(or 연결)이 되어 있는지 확인 후
    등록이 안되어 있다면 동의항목 페이지를 띄우고 등록되어 있다면 동의항목 페이지를 안 띄움
    4.회사: 콜백 페이지에서 전달받은 사용자인증정보 등을 활용해서 신규회원인 경우 등록을 하고 기존 회원인 경우
    변경된 내용이 있다면 업데이트하고
    5.회사: 회사 모바일웹에서 하고자 하는 업무를 수행

제가 이렇게 이해하고 있는데 이 내용이 맞을까요?

안녕하세요.

간편로그인: 웹/앱 등에서 카카오로그인을 하면 아이디/비번을 물어보지 않고 카카오로그인

ID/PW를 입력하지 않고 카카오톡 앱을 통해 인증하는 방식으로 "카카오톡으로 로그인"이라 표현 하기도 합니다.
키로깅, 키보드 후킹 등 공격을 근본적으로 방어할 수 있습니다.

자동로그인: 카카오톡에서 실행되는 인앱브라우저의 경우 로그인을 물어보지 않고도 카카오로그인

혼선 방지를 위해 "카카오톡에서 자동로그인"이라 표현합니다.
카카오톡 인앱브라우저 안에서 REST-API방식 카카오 로그인 인가요청 URL에 prompt=none 파라메터를 추가하면 사용자의 가입(연결) 여부에따라 인가코드를 즉시 반환하고 연결되지 않았다면 에러를 리턴합니다. 카카오톡 인앱브라우저내 가입자와 미가입자 A/B 테스트 또는 빠른 분기에 활용하시도록 제공되고 있습니다.

"카카오톡에서 자동로그인’ 이해하기 | Kakao Developers 이해하기

카카오싱크: 간편로그인 기능 + 제공되는 사용자 정보 추가 + 채널 등 다양한 기능 제공

간편 로그인은 싱크앱이 아니어도 사용할 수 있습니다.
제공하시는 서비스의 일반회원가입 입력항목을 기준으로 카카오 비즈니스에 개인 정보항목 검수를 받으시면 추가로 제3자정보제공동의항목을 사용하실 수 있고, 간편 가입 설정으로 서비스측 약관을 카카오 동의창에 표시하여 가입단계를 간소화하는데 주목적이 있습니다. 일반적으로 가입단계 간소화는 가입 전환율 향상과 구매전환율 향상으로 이어지므로 추천드리고 있습니다.


제가 이렇게 이해하고 있는데 이 내용이 맞을까요?

네, 기재해주신 내용 맞습니다.

1. 회사: 모바일 웹에서 로그인 버튼 클릭
2. 카카오: 인증모듈이 '카카오톡 앱이 설치+로그인 되어 있는지 확인'
3. 카카오: 설치+로그인되어 있다면 '인가코드와 함께' 미리 설정해 놓은 콜백 페이지('Redirect URI')로 이동
3-1.카카오: 설치가 안되어 있거나 로그인이 안되어 있는 경우 카카오의 로그인 페이지 실행
3-2. 카카오: 사용자가 계정/비번 입력 후 로그인하면 미리 설정해 놓은 콜백 페이지로 이동
3-0.카카오: 간편로그인을 시도할 때 카카오앱에 회사 모바일웹이 등록(or 연결)이 되어 있는지 확인 후
등록이 안되어 있다면 동의항목 페이지를 띄우고 등록되어 있다면 동의항목 페이지를 안 띄움
4.회사: 콜백 페이지에서 전달받은 사용자인증정보 등을 활용해서 신규회원인 경우 등록을 하고 기존 회원인 경우
변경된 내용이 있다면 업데이트하고
'콜백 페이지(Redirect URI)에서 액세스 토큰 발급 및 사용자정보조회 API호출하여 회원가입/갱신 또는 로그인에 활용'
5.회사: 회사 모바일웹에서 하고자 하는 업무를 수행

상세한 답변 진심. 감사드립니다.

좋아요 1

아 죄송합니다. 이번에는

Failed to launch ‘intent:#Intent;action=com.kakao.talk.intent.action.CAPRI_LOGGED_IN_ACTIVITY;launchFlags=0x08880000;S.com.kakao.sdk.talk.appKey=bc64e51e04508c94e36e254dc3fdc986;S.com.kakao.sdk.talk.redirectUri=https://uat.untactm.kr/login/kakaoCallback;S.com.kakao.sdk.talk.kaHeader=sdk/2.0.1%20os/javascript%20sdk_type/javascript%20lang/ko%20device/Win32%20origin/https%3A%2F%2Fuat.untactm.kr;S.com.kakao.sdk.talk.extraparams=%7B%22client_id%22%3A%22bc64e51e04508c94e36e254dc3fdc986%22%2C%22redirect_uri%22%3A%22https%3A%2F%2Fuat.untactm.kr%2Flogin%2FkakaoCallback%22%2C%22response_type%22%3A%22code%22%2C%22auth_tran_id%22%3A%22rnLWRX9lQbiXTsJ0WvZguU0vOcR.OnmDMprTOKJ7IQkE-xjA~CdqMOs7.9Nl%22%2C%22is_popup%22%3Atrue%7D;S.browser_fallback_url=https%3A%2F%2Fkauth.kakao.com%2Foauth%2Fauthorize%3Fclient_id%3Dbc64e51e04508c94e36e254dc3fdc986%26redirect_uri%3Dhttps%253A%252F%252Fuat.untactm.kr%252Flogin%252FkakaoCallback%26response_type%3Dcode%26auth_tran_id%3DrnLWRX9lQbiXTsJ0WvZguU0vOcR.OnmDMprTOKJ7IQkE-xjA~CdqMOs7.9Nl%26ka%3Dsdk%252F2.0.1%2520os%252Fjavascript%2520sdk_type%252Fjavascript%2520lang%252Fko%2520device%252FWin32%2520origin%252Fhttps%25253A%25252F%25252Fuat.untactm.kr%26is_popup%3Dfalse;end;’ because the scheme does not have a registered handler.

크롬이나 엣지의 개발자 모드에서 실행해보면
이런 에러가 납니다.

어제까지만 해도 잘 되었는데 위 말씀하신 내용을 가지고 도움을 받아 모바일기기에서는 간편로그인이 잘 되는걸 확인했는데
이번엔 pc에서 위와 같은 에러가 납니다.

카카오로 로그인 버튼을 클릭 하면
모바일에서는 아이디 계정 안 물어보고 로그인되고
pc에서는 위와 같은 에러가 납니다.

원인을 알 수 있을까요?

image

간편로그인(카카오톡으로 로그인)은 사용자환경의 User-Agent로 모바일 여부를 판단하고,
모바일 환경인 경우 Intent스킴을 호출하여 카카오톡 앱으로 로그인 시도합니다.

PC 에서 크롬개발자 모드 등 User-Agent를 임의로 변경하여 모바일로 작동하게 하는경우
Intent스킴을 호출 했지만, PC에서는 작동하지 않으므로 해당 메시지가 표시됩니다.

모바일 테스트는 PC가 아닌 에뮬레이터나 모바일 기기에서 진행 부탁드립니다.
감사합니다.

어제까지만해도 잘 되었는데 뭔가 소스를 변경하니 안되서 질문을드렸습니다.

감사합니다.

동일한 PC 크롬 개발자 모바일 모드에서 intent스킴 호출이 없었다면
JS SDK authorize방식 모바일 간편로그인으로 진행하지 않고 다른 방법으로 진행되었을거예요.

어제 코드에 있던 로그인페이지 url에 바로 접근했거나 (권장 방식 아님)

크롬 개발자 PC 모드에서 새로고침 없이 모바일 모드로 진행하여 모바일 모드로 작동하지 않았을 수 있습니다.

위의 캡쳐해주신 작동은 오류가 아니라 정상 동작입니다.
참고 부탁드려요.

네 감사합니다. 말씀하신 대로 어제는 다른 방법으로 진행되었습니다.
즐거운 오후 되세요.

좋아요 1