소셜로그아웃 후 재로그인시 다른계정으로 로그인하려고하는데요

안녕하세요 안드로이드 앱으로 카카오 소셜로그인을 연동하였습니다
해당 아이디 로그아웃 후 재로그인시에 Google처럼 다른계정을 선택하는것이 아닌
하나의 계정으로만 계속 로그인되는 현상을 발견하였습니다
어떻게 하면 다른 카카오톡 아이디로 로그인 할 수 있는지 방법을 알 고 싶습니다.

안녕하세요.

확인을 위해 앱 ID 부탁드립니다.


앱ID
https://developers.kakao.com/ 의 내 애플리케이션에 표시되는 ID 값 입니다.
숫자로된 ID 입니다
ex) 123456

1168945입니다

안녕하세요.
현재 로그인은 어떤 함수로 구현 하셨나요?

(1) // 카카오톡으로 로그인
UserApiClient.instance.loginWithKakaoTalk(context)

(2) // 카카오계정으로 로그인
UserApiClient.instance.loginWithKakaoAccount(context)

Amplify.Auth.signInWithSocialWebUI()를 사용중입니다
현재 AWS Cognito로 OpenID Connect를 연결하여 사용중인데

Amplify.Auth.signInWithSocialWebUI(
AuthProvider.custom(“Kakao”),
context as Activity,
{authSignResult →
LOG.i(this.javaClass.name, “kakao login success : $authSignResult”)
getToken(
sCallback = {
ApiManager.getInstance().setToken(it)
continuation.resume(Result.success(authSignResult))
},
fCallback = {
continuation.resume(Result.failure(Exception()))
}
)
},
{
if(it is SignedInException) {
getToken(
sCallback = {
ApiManager.getInstance().setToken(it)
continuation.resume(Result.success(null))
},
fCallback = {
continuation.resume(Result.failure(Exception()))
}
)
}
else {
LOG.e(this.javaClass.name, “kakao login fail : $it”)
LOG.errorStack(this.javaClass.name, it)
continuation.resume(Result.failure(it))
}
}
)
의 소스로 사용중입니다

네, REST-API KEY 사용하시는 것을 보니 내부적으로 REST API 방식 카카오 로그인을 사용하시는 것 같네요.

해당 브라우저 환경에 accounts.kakao.com에 이미 로그인되어 있어서 그렇습니다.

(1) 로그아웃 시, 카카오 계정과 함께 로그아웃 하시거나

(2) 로그인시, 기존 로그인 여부와 상관없이 ID/PW입력하여 로그인하기

하시면 다른 카카오 계정으로 로그인 하실 수 있습니다.

검토 부탁드려요.

확인 감사합니다

2번째 방법은 자동 로그인이 유지 되는건지 알 수 있을까요?

첫번째 방법이 자동 로그인이 그대로 유지되는것 같아서 진행중인데

Logout Redirect URI을 등록하려고 하니
https://로 시작하는게아닌
자체적으로 앱주소를 사용해야해서
testApi://logout
이런식으로 등록하려고하니 불가능하다는데 다른 방법이 있을까요?

Hello @희2408

I suggest you test this for this problem. It is very difficult for me to give a clearer solution since I do not know your source codes exactly, but update this according to your code and try it.

  1. For implementing full logout in the app:
// Kakao account logout
fun signOut() {
    // AWS Cognito logout
    Amplify.Auth.signOut()
    
    // Kakao logout 
    UserApiClient.instance.logout { error ->
        if (error != null) {
            Log.e(TAG, "Logout failed", error)
        } else {
            Log.i(TAG, "Logout successful")
        }
    }
}
  1. For Custom URI Scheme: Add these settings to your AndroidManifest.xml:
<activity android:name=".LogoutActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="testapi"
              android:host="logout" />
    </intent-filter>
</activity>

In the Kakao developer console, you can set the Logout Redirect URI as: testapi://logout

Regarding auto-login:

The auto-login feature is maintained even when using the second method (ID/Password input)
Users will explicitly see the option to log in with a different account

자동 로그인이라 하심은 카카오 로그인과 별개로 운영하시는 앱의 로그인 유지를 말씀하시는걸까요?

아니면, 카카오 계정 로그인 페이지에 있는 “카카오톡으로 로그인” 기능을 말씀하시는걸까요?

부연 설명해주시겠어요?


참고로 REST-API방식 로그아웃에서 Logout Redirect URI는 웹 URL을 사용하셔야합니다.

1개의 좋아요

네 별개로 운영하는 앱의 로그인 유지를 말하는겁니다

  1. 초기 로그인:
  • 사용자가 카카오톡 이미지를 클릭
  • 카카오톡 아이디 및 비밀번호로 로그인
  • API를 통해 필요한 정보를 받아 소셜 회원가입 완료
  • 앱에서 로그인 처리
  1. 로그아웃:
  • 앱의 로그인 화면으로 돌아감
  1. 재로그인:
  • 카카오톡 이미지를 다시 클릭

카카오톡 자동 로그인 기능

카카오톡은 구글과 유사하게 이전에 로그인한 계정 정보를 기억하고 자동 로그인을 지원하는걸로 알고있는데

구글은 로그인할 계정을 보여주거나 새로 로그인할 수 있는화면이 나오는데 카카오같은경우에는 무조건 재로그인만 되는 상황이라서 여쭤보는거였습니다

The Kakao Developer console only supports https:// for registering the Logout Redirect URI, so the custom URI I have set separately doesn’t work.

앱의 로그인 유지는 카카오와 무관하게 자체 구현하시면되고
로그인 유지는 로그인 버튼을 클릭할 필요 없이 로그인 상태를 유지 하는 것이 일반적입니다.

즉, 로그아웃을 할때 카카오 계정과 함께 로그아웃만 하시면 별도 구현 없이 카카오 계정 로그인 페이지에서 로그인 가능하며

모바일 기기에서 [카카오톡으로 로그인]은 카카오톡에 로그인된 계정으로만 로그인 가능합니다.

참고 부탁드려요.

아 넵 설명 감사드립니다 근데 제가 구현한 앱에서 logout기능을 https://를 받는게아니라서 Logout Redirect URI를 설정할수가 없는부분을 해결 할 수 있는 방법은 없을까요?
앱에서는 https://를 받을 수 없다고 해서요

소셜로그인은 Oauth2 표준에 따라 http request 기반이라 그렇습니다.

웹뷰로 띄우시고 shouldOverrideUrlLoading로 제어해보시는 것은 어떨까요?

@희2408 I just showed you a simple working logic, compiling it is up to your ability, I know it supports http or https, it would be healthier for you if you do as @tim.l said. For this, you will need to develop the session services a little more. You should not forget that we are only showing sample codes here, since each software developer’s project structure is different, it is very difficult to write exactly compatible code. I can give you ideas, but it would be very difficult to give you code results.

1개의 좋아요

Thank you for your help

Please write new comments for more information. We will be happy to help you.

아 넵 감사합니다 해당내용은 전달하여 가능한지 물어보고 추후에 다시 문의드리겠습니다