Android Reference

com.kakao.auth

Class Session

  • package com.kakao.auth
    public class Session
    extends Object
    implements ISession
    로그인 상태를 유지 시켜주는 객체로 access token을 관리한다.
    • Method Detail

      • public void addCallback(ISessionCallback callback)
        세션 상태 변화 콜백을 받고자 할때 콜백을 등록한다.
        Specified by:
        addCallback in interface ISession
        Parameters:
        callback - 추가할 세션 콜백
      • public boolean checkAndImplicitOpen()
        Session 의 상태를 체크후 isOpenable() 상태일 때 Login을 시도한다.

        요청에 대한 결과는 KakaoAdapterISessionCallback으로 전달이 된다.

        Returns:
        true if token can be refreshed, false otherwise.
      • public void clearCallbacks()
        Remove all session callbacks.
        Specified by:
        clearCallbacks in interface ISession
      • public void close()
        명시적 강제 close(로그아웃/탈퇴). request중 인 것들은 모두 실패를 받게 된다. token을 삭제하기 때문에 authorization code부터(로그인 버튼) 다시 받아서 세션을 open 해야한다.

        Session callbacks are not invoked, if there are any.

        Specified by:
        close in interface ISession
      • public void createAccountAndOpen(Activity activity)
        통합 계정 회원 가입 후 세션 오픈을 진행한다.
        Parameters:
        activity - activity
        Since:
        1.17.0
      • public void createAccountAndOpen(androidx.fragment.app.Fragment fragment)
        통합 계정 회원 가입 후 세션 오픈을 진행한다.
        Parameters:
        fragment - fragment
        Since:
        1.17.0
      • public com.kakao.util.helper.SharedPreferencesCache getAppCache()
        앱 캐시를 반환한다.
        Returns:
        앱 캐시
      • public static Session getCurrentSession()
        Returns current Session instance.
        Returns:
        현재 세션 객체
      • public com.kakao.auth.Session.RequestType getRequestType()
        현재 진행 중인 요청 타입
        Returns:
        현재 진행 중인 요청 타입
      • public boolean handleActivityResult(int requestCode,
                                   int resultCode,
                                   Intent data)
        로그인 activity를 이용하여 sdk에서 필요로 하는 activity를 띄운다. 따라서 해당 activity의 결과를 로그인 activity가 받게 된다. 해당 결과를 세션이 받아서 다음 처리를 할 수 있도록 로그인 activity의 onActivityResult에서 해당 method를 호출한다.
        Parameters:
        requestCode - requestCode of onActivityResult callback
        resultCode - resultCode of onActivityResult callback
        data - intent data of onActivityResult callback
        Returns:
        true if the intent originated from Kakao login, false otherwise.
      • public final boolean isClosed()
        현재 세션이 닫힌 상태인지 여부를 반환한다.
        Specified by:
        isClosed in interface ISession
        Returns:
        세션이 닫힌 상태라면 true, 그외의 경우 false를 반환한다.
      • public boolean isOpenable()
        현재 세션이 오픈중(갱신 포함) 상태인지 여부를 반환한다.

        1. Access token이 없거나 만료되었고, auth code가 발급되어 있는 상태. 2. Access token이 없거나 만료되었고, refresh token이 있는 상태.

        Specified by:
        isOpenable in interface ISession
        Returns:
        세션 오픈 진행 중이면 true, 그외 경우는 false를 반환한다.
      • public final boolean isOpened()
        현재 세션이 열린 상태인지 여부를 반환한다.
        Specified by:
        isOpened in interface ISession
        Returns:
        세션이 열린 상태라면 true, 그외의 경우 false를 반환한다.
      • public void open(AuthType authType,
                Activity callerActivity)
        세션 오픈을 진행한다. isOpened() 상태이면 콜백 호출 후 바로 종료. isClosed() 상태이면 authorization code 요청. 에러/취소시 isClosed() isOpenable 상태이면 code 또는 refresh token 이용하여 access token 을 받아온다. 에러/취소시 {isClosed()), refresh 취소시에만 isOpenable() 유지. param으로 받은 콜백으로 그 결과를 전달한다.
        Specified by:
        open in interface ISession
        Parameters:
        authType - 인증받을 타입. 예를 들어, 카카오톡 또는 카카오스토리 또는 직접 입력한 카카오계정
        callerActivity - 세션오픈을 호출한 activity
      • public void open(AuthType authType,
                androidx.fragment.app.Fragment fragment)
        세션 오픈을 진행한다. isOpened() 상태이면 콜백 호출 후 바로 종료. isClosed() 상태이면 authorization code 요청. 에러/취소시 isClosed() isOpenable 상태이면 code 또는 refresh token 이용하여 access token 을 받아온다. 에러/취소시 {isClosed()), refresh 취소시에만 isOpenable() 유지. param으로 받은 콜백으로 그 결과를 전달한다.
        Specified by:
        open in interface ISession
        Parameters:
        authType - 인증받을 타입. 예를 들어, 카카오톡 또는 카카오스토리 또는 직접 입력한 카카오계정
        fragment - 세션오픈을 호출한 fragment
      • public void open(AuthType authType,
                androidx.fragment.app.Fragment callerFragment,
                Map<String,String> extraParams)
      • public void openWithAuthCode(String authCode)
        Try login (open session) with authorization code.
        Specified by:
        openWithAuthCode in interface ISession
        Parameters:
        authCode - Authorization code acquired by Kakao account authentication/authorization
      • public Future<AccessTokenrefreshAccessToken(AccessTokenCallback callback)
        Refresh access token with refresh token, even if access token hasn't expired.

        This method closes session if refreshing fails with http status 400 or 401. This usually happens under the following cases: - when refresh token hash expired - when user has changed his or her Kakao account password

        Developers should check if session is closed in failure callback and deal with it.

        Specified by:
        refreshAccessToken in interface ISession
        Parameters:
        callback - Success/failure callback for access token
      • public void removeCallback(ISessionCallback callback)
        더이상 세션 상태 변화 콜백을 받고 싶지 않을 때 삭제한다.
        Specified by:
        removeCallback in interface ISession
        Parameters:
        callback - 삭제할 콜백
      • public void updateScopes(Activity activity,
                        List<String> scopes,
                        AccessTokenCallback callback)
        Update user's scopes (user's agreement to provide specific data to this application) manually. Before 1.11.0, SDK requested updating user scopes automatically when API responded with InsufficientScopeException. From 1.11.0, Applications can manually request updating user scopes with this method.

        Example scopes are: - account_email - phone_number

        Parameters:
        activity - activity
        scopes - List of scopes to be requested explicitly
        callback - access token callback
        Since:
        1.11.0