KOToken Class Reference
Inherits from | NSObject |
---|---|
Conforms to | NSCopying NSSecureCoding |
Declared in | KOToken.h |
accessToken
카카오 API를 이용하여 특정 사용자의 리소스에 접근하기 위한 OAuth 토큰
@property (readonly) NSString *accessToken
Declared In
KOToken.h
accessTokenExpiresAt
accessToken 이 만료되는 시각. 네이티브 앱키로 요청한 accessToken 기본 만료시간: 12시간
@property (readonly) NSDate *accessTokenExpiresAt
Declared In
KOToken.h
refreshTokenExpiresAt
refreshToken 이 만료되는 시각. 네이티브 앱키로 요청한 refreshToken 기본 만료시간: 30일.
@property (readonly, nullable) NSDate *refreshTokenExpiresAt
Discussion
이 속성은 1.8.0 버전부터 제공되고 있습니다.
만약 앱 업데이트 전에 구버전 SDK로 발급 받았던 토큰이 남아 있어서 [KOSession token]을 통해 접근하는 경우 새로 로그인하거나 refreshToken 이 갱신되기 전까지 값이 없을 수 있습니다.
값이 없는 경우는 구버전 토큰으로 가정하여 갱신 가능한 상태로 판단합니다.(canRefresh = YES) 그러나 실제로 서버로 갱신을 요청했을 때 리프레시 토큰이 만료되었다면 갱신에 실패합니다.
Declared In
KOToken.h
scopes
현재 로그인된 사용자가 동의한 scope 목록
@property (readonly) NSArray<NSString*> *scopes
Declared In
KOToken.h
– canRefresh
refreshToken 이 사용 가능한 상태인지 여부. 이 값이 YES이면 accessToken 을 계속 갱신하여 사용 가능함.
- (BOOL)canRefresh
Return Value
refreshToken 이 있고 현재 시간이 refreshTokenExpiresAt 보다 과거인 경우 YES
refreshToken 이 있고 refreshTokenExpiresAt 가 nil인 경우(구버전 SDK에서 발급받은 토큰) YES
아니면 NO
Discussion
클라이언트가 가지고 있는 accessToken 및 refreshToken 의 만료 시간은 서버와 정확히 일치하지 않을 수 있으며 토큰 발급을 위해 로그인한 카카오계정 상태에 변동이 있는 경우 당시의 카카오 정책에 따라 일괄적으로 만료될 수 있습니다. 예를 들어 카카오계정의 비밀번호가 변경되면 현재 발급되어 있는 모든 토큰이 만료됩니다. 따라서 실제 토큰 유효성 여부는 토큰 갱신 등을 서버로 요청해야만 정확한 확인이 가능하며 클라이언트의 만료시간을 보고 토큰이 유효하다고 판단하는 것은 권장하지 않습니다.
Declared In
KOToken.h
– remainingExpireTime
accessTokenExpiresAt 까지 남은 시간
- (NSTimeInterval)remainingExpireTime
Return Value
음수이면 accessToken 이 만료되었음을 의미함
Declared In
KOToken.h