@react-native-kakao/user 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/net/mjstudio/rnkakao/user/RNCKakaoUserModule.kt +274 -4
- package/android/src/newarch/KakaoUserSpec.kt +1 -1
- package/android/src/oldarch/KakaoUserSpec.kt +29 -2
- package/ios/RNCKakaoUser.mm +9 -5
- package/ios/RNCKakaoUserManager.swift +45 -6
- package/lib/commonjs/index.js +7 -3
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/spec/NativeKakaoUser.js.map +1 -1
- package/lib/module/index.js +6 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/spec/NativeKakaoUser.js.map +1 -1
- package/lib/typescript/src/index.d.ts +30 -4
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts +3 -2
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.tsx +35 -6
- package/src/spec/NativeKakaoUser.ts +3 -1
|
@@ -2,8 +2,24 @@ package net.mjstudio.rnkakao.user
|
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.Promise
|
|
4
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
+
import com.facebook.react.bridge.ReactMethod
|
|
6
|
+
import com.facebook.react.bridge.ReadableArray
|
|
7
|
+
import com.kakao.sdk.auth.AuthApiClient
|
|
8
|
+
import com.kakao.sdk.auth.model.OAuthToken
|
|
9
|
+
import com.kakao.sdk.auth.model.Prompt
|
|
10
|
+
import com.kakao.sdk.common.model.KakaoSdkError
|
|
5
11
|
import com.kakao.sdk.user.UserApiClient
|
|
6
|
-
import net.mjstudio.rnkakao.
|
|
12
|
+
import net.mjstudio.rnkakao.core.util.RNCKakaoUtil
|
|
13
|
+
import net.mjstudio.rnkakao.core.util.argArr
|
|
14
|
+
import net.mjstudio.rnkakao.core.util.argMap
|
|
15
|
+
import net.mjstudio.rnkakao.core.util.filterIsInstance
|
|
16
|
+
import net.mjstudio.rnkakao.core.util.pushMapList
|
|
17
|
+
import net.mjstudio.rnkakao.core.util.pushStringList
|
|
18
|
+
import net.mjstudio.rnkakao.core.util.putBooleanIfNotNull
|
|
19
|
+
import net.mjstudio.rnkakao.core.util.putDoubleIfNotNull
|
|
20
|
+
import net.mjstudio.rnkakao.core.util.putIntIfNotNull
|
|
21
|
+
import net.mjstudio.rnkakao.core.util.rejectWith
|
|
22
|
+
import java.util.*
|
|
7
23
|
|
|
8
24
|
class RNCKakaoUserModule internal constructor(context: ReactApplicationContext) :
|
|
9
25
|
KakaoUserSpec(context) {
|
|
@@ -12,9 +28,263 @@ class RNCKakaoUserModule internal constructor(context: ReactApplicationContext)
|
|
|
12
28
|
return NAME
|
|
13
29
|
}
|
|
14
30
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
31
|
+
@ReactMethod
|
|
32
|
+
override fun login(
|
|
33
|
+
serviceTerms: ReadableArray?,
|
|
34
|
+
prompts: ReadableArray?,
|
|
35
|
+
useKakaoAccountLogin: Boolean,
|
|
36
|
+
promise: Promise
|
|
37
|
+
) {
|
|
38
|
+
val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
|
|
39
|
+
if (error != null) {
|
|
40
|
+
promise.rejectWith(error)
|
|
41
|
+
} else if (token == null) {
|
|
42
|
+
promise.rejectWith("token not found")
|
|
43
|
+
} else {
|
|
44
|
+
promise.resolve(argMap().apply {
|
|
45
|
+
putString("accessToken", token.accessToken)
|
|
46
|
+
putString("refreshToken", token.refreshToken)
|
|
47
|
+
putString("tokenType", null)
|
|
48
|
+
putString("idToken", token.idToken)
|
|
49
|
+
putDouble(
|
|
50
|
+
"accessTokenExpiresAt", token.accessTokenExpiresAt.time.toDouble()
|
|
51
|
+
)
|
|
52
|
+
putDouble(
|
|
53
|
+
"refreshTokenExpiresAt", token.refreshTokenExpiresAt.time.toDouble()
|
|
54
|
+
)
|
|
55
|
+
putDouble(
|
|
56
|
+
"accessTokenExpiresIn",
|
|
57
|
+
RNCKakaoUtil.diffSec(token.accessTokenExpiresAt, Date()).toDouble()
|
|
58
|
+
)
|
|
59
|
+
putDouble(
|
|
60
|
+
"refreshTokenExpiresIn",
|
|
61
|
+
RNCKakaoUtil.diffSec(token.refreshTokenExpiresAt, Date()).toDouble()
|
|
62
|
+
)
|
|
63
|
+
putArray("scopes", argArr().apply {
|
|
64
|
+
pushStringList(token.scopes ?: listOf())
|
|
65
|
+
})
|
|
66
|
+
})
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext) && !useKakaoAccountLogin) {
|
|
71
|
+
UserApiClient.instance.loginWithKakaoTalk(
|
|
72
|
+
reactApplicationContext,
|
|
73
|
+
serviceTerms = serviceTerms?.filterIsInstance<String>(),
|
|
74
|
+
callback = callback
|
|
75
|
+
)
|
|
76
|
+
} else {
|
|
77
|
+
UserApiClient.instance.loginWithKakaoAccount(
|
|
78
|
+
reactApplicationContext,
|
|
79
|
+
prompts = prompts?.filterIsInstance<String>()?.map {
|
|
80
|
+
when (it) {
|
|
81
|
+
"Login" -> Prompt.LOGIN
|
|
82
|
+
"Create" -> Prompt.CREATE
|
|
83
|
+
"Cert" -> Prompt.CERT
|
|
84
|
+
"UnifyDaum" -> Prompt.UNIFY_DAUM
|
|
85
|
+
"SelectAccount" -> Prompt.SELECT_ACCOUNT
|
|
86
|
+
else -> null
|
|
87
|
+
}
|
|
88
|
+
}?.filterNotNull(),
|
|
89
|
+
serviceTerms = serviceTerms?.filterIsInstance<String>(),
|
|
90
|
+
callback = callback
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@ReactMethod
|
|
96
|
+
override fun isKakaoTalkLoginAvailable(promise: Promise) {
|
|
97
|
+
promise.resolve(UserApiClient.instance.isKakaoTalkLoginAvailable(reactApplicationContext))
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@ReactMethod
|
|
101
|
+
override fun logout(promise: Promise) {
|
|
102
|
+
UserApiClient.instance.logout {
|
|
103
|
+
if (it != null) {
|
|
104
|
+
promise.rejectWith(it)
|
|
105
|
+
} else {
|
|
106
|
+
promise.resolve(42)
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
@ReactMethod
|
|
112
|
+
override fun unlink(promise: Promise) {
|
|
113
|
+
UserApiClient.instance.unlink {
|
|
114
|
+
if (it != null) {
|
|
115
|
+
promise.rejectWith(it)
|
|
116
|
+
} else {
|
|
117
|
+
promise.resolve(42)
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@ReactMethod
|
|
123
|
+
override fun isLogined(promise: Promise) {
|
|
124
|
+
if (AuthApiClient.instance.hasToken()) {
|
|
125
|
+
UserApiClient.instance.accessTokenInfo { _, error ->
|
|
126
|
+
if (error != null) {
|
|
127
|
+
if (error is KakaoSdkError && error.isInvalidTokenError()) {
|
|
128
|
+
promise.resolve(false)
|
|
129
|
+
} else {
|
|
130
|
+
promise.rejectWith(error)
|
|
131
|
+
}
|
|
132
|
+
} else {
|
|
133
|
+
promise.resolve(true)
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
} else {
|
|
137
|
+
promise.resolve(false)
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@ReactMethod
|
|
142
|
+
override fun scopes(scopes: ReadableArray?, promise: Promise) {
|
|
143
|
+
UserApiClient.instance.scopes { scopeInfo, error ->
|
|
144
|
+
if (error != null) {
|
|
145
|
+
promise.rejectWith(error)
|
|
146
|
+
} else if (scopeInfo?.scopes == null) {
|
|
147
|
+
promise.rejectWith("scopes not found")
|
|
148
|
+
} else {
|
|
149
|
+
promise.resolve(argArr().also { arr ->
|
|
150
|
+
scopeInfo.scopes!!.forEach { scope ->
|
|
151
|
+
arr.pushMap(argMap().also { map ->
|
|
152
|
+
map.putString("id", scope.id)
|
|
153
|
+
map.putString("displayName", scope.displayName)
|
|
154
|
+
map.putString("type", scope.type.name)
|
|
155
|
+
map.putBoolean("using", scope.using)
|
|
156
|
+
map.putBooleanIfNotNull("delegated", scope.delegated)
|
|
157
|
+
map.putBoolean("agreed", scope.agreed)
|
|
158
|
+
map.putBooleanIfNotNull("revocable", scope.revocable)
|
|
159
|
+
})
|
|
160
|
+
}
|
|
161
|
+
})
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@ReactMethod
|
|
167
|
+
override fun revokeScopes(scopes: ReadableArray, promise: Promise) {
|
|
168
|
+
UserApiClient.instance.revokeScopes(
|
|
169
|
+
scopes = scopes.filterIsInstance<String>() ?: listOf()
|
|
170
|
+
) { scopeInfo, error ->
|
|
171
|
+
if (error != null) {
|
|
172
|
+
promise.rejectWith(error)
|
|
173
|
+
} else if (scopeInfo == null) {
|
|
174
|
+
promise.rejectWith("scopeInfo not found")
|
|
175
|
+
} else {
|
|
176
|
+
promise.resolve(42)
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
@ReactMethod
|
|
182
|
+
override fun serviceTerms(promise: Promise) {
|
|
183
|
+
UserApiClient.instance.serviceTerms { serviceTerms, error ->
|
|
184
|
+
if (error != null) {
|
|
185
|
+
promise.rejectWith(error)
|
|
186
|
+
} else if (serviceTerms?.serviceTerms == null) {
|
|
187
|
+
promise.rejectWith("serviceTerms not found")
|
|
188
|
+
} else {
|
|
189
|
+
promise.resolve(argMap().apply {
|
|
190
|
+
putArray("allowedServiceTerms", argArr().apply {
|
|
191
|
+
serviceTerms.serviceTerms?.forEach { term ->
|
|
192
|
+
pushMap(argMap().apply {
|
|
193
|
+
putString("tag", term.tag)
|
|
194
|
+
putDoubleIfNotNull("agreedAt", term.agreedAt?.time?.toDouble())
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
})
|
|
198
|
+
})
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@ReactMethod
|
|
204
|
+
override fun shippingAddresses(promise: Promise) {
|
|
205
|
+
UserApiClient.instance.shippingAddresses { addrs, error ->
|
|
206
|
+
if (error != null) {
|
|
207
|
+
promise.rejectWith(error)
|
|
208
|
+
} else if (addrs == null) {
|
|
209
|
+
promise.rejectWith("shipping addresses not found")
|
|
210
|
+
} else {
|
|
211
|
+
promise.resolve(argMap().apply {
|
|
212
|
+
putIntIfNotNull("userId", addrs.userId?.toInt())
|
|
213
|
+
putBooleanIfNotNull("needsAgreement", addrs.needsAgreement)
|
|
214
|
+
putArray("shippingAddresses", argArr().apply {
|
|
215
|
+
pushMapList(addrs.shippingAddresses?.map { addr ->
|
|
216
|
+
argMap().apply {
|
|
217
|
+
putInt("id", addr.id.toInt())
|
|
218
|
+
putString("name", addr.name)
|
|
219
|
+
putBoolean("isDefault", addr.isDefault)
|
|
220
|
+
putDoubleIfNotNull("updatedAt", addr.updatedAt?.time?.toDouble())
|
|
221
|
+
putString("type", addr.type?.name)
|
|
222
|
+
putString("baseAddress", addr.baseAddress)
|
|
223
|
+
putString("detailAddress", addr.detailAddress)
|
|
224
|
+
putString("receiverName", addr.receiverName)
|
|
225
|
+
putString("receiverPhoneNumber1", addr.receiverPhoneNumber1)
|
|
226
|
+
putString("receiverPhoneNumber2", addr.receiverPhoneNumber2)
|
|
227
|
+
putString("zoneNumber", addr.zoneNumber)
|
|
228
|
+
putString("zipCode", addr.zipCode)
|
|
229
|
+
}
|
|
230
|
+
} ?: listOf())
|
|
231
|
+
})
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@ReactMethod
|
|
238
|
+
override fun me(promise: Promise) {
|
|
239
|
+
UserApiClient.instance.me { user, error ->
|
|
240
|
+
if (error != null) {
|
|
241
|
+
promise.rejectWith(error)
|
|
242
|
+
} else if (user == null) {
|
|
243
|
+
promise.rejectWith("user not found")
|
|
244
|
+
} else {
|
|
245
|
+
promise.resolve(argMap().apply {
|
|
246
|
+
putIntIfNotNull("id", user.id?.toInt())
|
|
247
|
+
putString("name", user.kakaoAccount?.name)
|
|
248
|
+
|
|
249
|
+
putString("email", user.kakaoAccount?.email)
|
|
250
|
+
putString("nickname", user.kakaoAccount?.profile?.nickname)
|
|
251
|
+
putString("profileImageUrl", user.kakaoAccount?.profile?.profileImageUrl)
|
|
252
|
+
putString("thumbnailImageUrl", user.kakaoAccount?.profile?.thumbnailImageUrl)
|
|
253
|
+
putString("phoneNumber", user.kakaoAccount?.phoneNumber)
|
|
254
|
+
putString("ageRange", user.kakaoAccount?.ageRange?.name)
|
|
255
|
+
putString("birthday", user.kakaoAccount?.birthday)
|
|
256
|
+
putString("birthdayType", user.kakaoAccount?.birthdayType?.name)
|
|
257
|
+
putString("birthyear", user.kakaoAccount?.birthyear)
|
|
258
|
+
putString("gender", user.kakaoAccount?.gender?.name)
|
|
259
|
+
putBooleanIfNotNull("isEmailValid", user.kakaoAccount?.isEmailValid)
|
|
260
|
+
putBooleanIfNotNull("isEmailVerified", user.kakaoAccount?.isEmailVerified)
|
|
261
|
+
putBooleanIfNotNull("isKorean", user.kakaoAccount?.isKorean)
|
|
262
|
+
putBooleanIfNotNull(
|
|
263
|
+
"ageRangeNeedsAgreement", user.kakaoAccount?.ageRangeNeedsAgreement
|
|
264
|
+
)
|
|
265
|
+
putBooleanIfNotNull(
|
|
266
|
+
"birthdayNeedsAgreement", user.kakaoAccount?.birthdayNeedsAgreement
|
|
267
|
+
)
|
|
268
|
+
putBooleanIfNotNull(
|
|
269
|
+
"birthyearNeedsAgreement", user.kakaoAccount?.birthyearNeedsAgreement
|
|
270
|
+
)
|
|
271
|
+
putBooleanIfNotNull(
|
|
272
|
+
"emailNeedsAgreement", user.kakaoAccount?.emailNeedsAgreement
|
|
273
|
+
)
|
|
274
|
+
putBooleanIfNotNull(
|
|
275
|
+
"genderNeedsAgreement", user.kakaoAccount?.genderNeedsAgreement
|
|
276
|
+
)
|
|
277
|
+
putBooleanIfNotNull(
|
|
278
|
+
"isKoreanNeedsAgreement", user.kakaoAccount?.isKoreanNeedsAgreement
|
|
279
|
+
)
|
|
280
|
+
putBooleanIfNotNull(
|
|
281
|
+
"phoneNumberNeedsAgreement", user.kakaoAccount?.phoneNumberNeedsAgreement
|
|
282
|
+
)
|
|
283
|
+
putBooleanIfNotNull(
|
|
284
|
+
"profileNeedsAgreement", user.kakaoAccount?.profileNeedsAgreement
|
|
285
|
+
)
|
|
286
|
+
})
|
|
287
|
+
}
|
|
18
288
|
}
|
|
19
289
|
}
|
|
20
290
|
|
|
@@ -1,7 +1,34 @@
|
|
|
1
|
-
package net.mjstudio.rnkakao.
|
|
1
|
+
package net.mjstudio.rnkakao.user
|
|
2
2
|
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
3
4
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
5
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
+
import com.facebook.react.bridge.ReadableArray
|
|
5
7
|
|
|
6
8
|
abstract class KakaoUserSpec internal constructor(context: ReactApplicationContext) :
|
|
7
|
-
ReactContextBaseJavaModule(context)
|
|
9
|
+
ReactContextBaseJavaModule(context) {
|
|
10
|
+
abstract fun login(
|
|
11
|
+
serviceTerms: ReadableArray?,
|
|
12
|
+
prompts: ReadableArray?,
|
|
13
|
+
useKakaoAccountLogin: Boolean,
|
|
14
|
+
promise: Promise
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
abstract fun isKakaoTalkLoginAvailable(promise: Promise)
|
|
18
|
+
|
|
19
|
+
abstract fun logout(promise: Promise)
|
|
20
|
+
|
|
21
|
+
abstract fun unlink(promise: Promise)
|
|
22
|
+
|
|
23
|
+
abstract fun isLogined(promise: Promise)
|
|
24
|
+
|
|
25
|
+
abstract fun scopes(scopes: ReadableArray?, promise: Promise)
|
|
26
|
+
|
|
27
|
+
abstract fun revokeScopes(scopes: ReadableArray, promise: Promise)
|
|
28
|
+
|
|
29
|
+
abstract fun serviceTerms(promise: Promise)
|
|
30
|
+
|
|
31
|
+
abstract fun shippingAddresses(promise: Promise)
|
|
32
|
+
|
|
33
|
+
abstract fun me(promise: Promise)
|
|
34
|
+
}
|
package/ios/RNCKakaoUser.mm
CHANGED
|
@@ -18,14 +18,14 @@ RCT_EXPORT_METHOD(isKakaoTalkLoginAvailable
|
|
|
18
18
|
RCT_EXPORT_METHOD(login
|
|
19
19
|
: (NSArray*)serviceTerms prompts
|
|
20
20
|
: (NSArray*)prompts useKakaoAccountLoginIos
|
|
21
|
-
: (BOOL)
|
|
21
|
+
: (BOOL)useKakaoAccountLogin resolve
|
|
22
22
|
: (RCTPromiseResolveBlock)resolve reject
|
|
23
23
|
: (RCTPromiseRejectBlock)reject) {
|
|
24
24
|
[[self manager] login:serviceTerms
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
prompts:prompts
|
|
26
|
+
useKakaoAccountLogin:useKakaoAccountLogin
|
|
27
|
+
resolve:resolve
|
|
28
|
+
reject:reject];
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
RCT_EXPORT_METHOD(logout : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
|
|
@@ -68,6 +68,10 @@ RCT_EXPORT_METHOD(shippingAddresses
|
|
|
68
68
|
[[self manager] shippingAddresses:resolve reject:reject];
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
RCT_EXPORT_METHOD(me : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) {
|
|
72
|
+
[[self manager] me:resolve reject:reject];
|
|
73
|
+
}
|
|
74
|
+
|
|
71
75
|
// Don't compile this code when we build for the old architecture.
|
|
72
76
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
73
77
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
@@ -28,7 +28,7 @@ import RNCKakaoCore
|
|
|
28
28
|
@objc public func login(
|
|
29
29
|
_ serviceTerms: [String],
|
|
30
30
|
prompts: [String],
|
|
31
|
-
|
|
31
|
+
useKakaoAccountLogin: Bool,
|
|
32
32
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
33
33
|
reject: @escaping RCTPromiseRejectBlock
|
|
34
34
|
) {
|
|
@@ -36,7 +36,7 @@ import RNCKakaoCore
|
|
|
36
36
|
RNCKakaoUtil.reject(reject, "KakaoSdk is not initialized")
|
|
37
37
|
return
|
|
38
38
|
}
|
|
39
|
-
if UserApi.isKakaoTalkLoginAvailable(), !
|
|
39
|
+
if UserApi.isKakaoTalkLoginAvailable(), !useKakaoAccountLogin {
|
|
40
40
|
UserApi.shared
|
|
41
41
|
.loginWithKakaoTalk(serviceTerms: emptyArrayToNil(serviceTerms)) { token, error in
|
|
42
42
|
if let error {
|
|
@@ -174,8 +174,8 @@ import RNCKakaoCore
|
|
|
174
174
|
UserApi.shared.scopes(scopes: emptyArrayToNil(scopes)) { scopeInfo, error in
|
|
175
175
|
if let error {
|
|
176
176
|
RNCKakaoUtil.reject(reject, error)
|
|
177
|
-
} else if let scopeInfo {
|
|
178
|
-
resolve(
|
|
177
|
+
} else if let scopes = scopeInfo?.scopes {
|
|
178
|
+
resolve(scopes.map { s in
|
|
179
179
|
[
|
|
180
180
|
"id": s.id,
|
|
181
181
|
"displayName": s.displayName,
|
|
@@ -185,9 +185,9 @@ import RNCKakaoCore
|
|
|
185
185
|
"agreed": s.agreed,
|
|
186
186
|
"revocable": s.revocable as Any
|
|
187
187
|
]
|
|
188
|
-
}
|
|
188
|
+
})
|
|
189
189
|
} else {
|
|
190
|
-
RNCKakaoUtil.reject(reject, "
|
|
190
|
+
RNCKakaoUtil.reject(reject, "scopes not found")
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
}
|
|
@@ -273,6 +273,45 @@ import RNCKakaoCore
|
|
|
273
273
|
}
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
+
@objc public func me(
|
|
277
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
278
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
279
|
+
) {
|
|
280
|
+
UserApi.shared.me { user, error in
|
|
281
|
+
if let error {
|
|
282
|
+
RNCKakaoUtil.reject(reject, error)
|
|
283
|
+
} else if let user {
|
|
284
|
+
resolve([
|
|
285
|
+
"id": user.id as Any,
|
|
286
|
+
"name": user.kakaoAccount?.name as Any,
|
|
287
|
+
"email": user.kakaoAccount?.email as Any,
|
|
288
|
+
"nickname": user.kakaoAccount?.profile?.nickname as Any,
|
|
289
|
+
"profileImageUrl": user.kakaoAccount?.profile?.profileImageUrl?.absoluteString as Any,
|
|
290
|
+
"thumbnailImageUrl": user.kakaoAccount?.profile?.thumbnailImageUrl?.absoluteString as Any,
|
|
291
|
+
"phoneNumber": user.kakaoAccount?.phoneNumber as Any,
|
|
292
|
+
"ageRange": user.kakaoAccount?.ageRange?.rawValue as Any,
|
|
293
|
+
"birthday": user.kakaoAccount?.birthday as Any,
|
|
294
|
+
"birthdayType": user.kakaoAccount?.birthdayType as Any,
|
|
295
|
+
"birthyear": user.kakaoAccount?.birthyear as Any,
|
|
296
|
+
"gender": user.kakaoAccount?.gender?.rawValue as Any,
|
|
297
|
+
"isEmailValid": user.kakaoAccount?.isEmailValid as Any,
|
|
298
|
+
"isEmailVerified": user.kakaoAccount?.isEmailVerified as Any,
|
|
299
|
+
"isKorean": user.kakaoAccount?.isKorean as Any,
|
|
300
|
+
"ageRangeNeedsAgreement": user.kakaoAccount?.ageRangeNeedsAgreement as Any,
|
|
301
|
+
"birthdayNeedsAgreement": user.kakaoAccount?.birthdayNeedsAgreement as Any,
|
|
302
|
+
"birthyearNeedsAgreement": user.kakaoAccount?.birthyearNeedsAgreement as Any,
|
|
303
|
+
"emailNeedsAgreement": user.kakaoAccount?.emailNeedsAgreement as Any,
|
|
304
|
+
"genderNeedsAgreement": user.kakaoAccount?.genderNeedsAgreement as Any,
|
|
305
|
+
"isKoreanNeedsAgreement": user.kakaoAccount?.isKoreanNeedsAgreement as Any,
|
|
306
|
+
"phoneNumberNeedsAgreement": user.kakaoAccount?.phoneNumberNeedsAgreement as Any,
|
|
307
|
+
"profileNeedsAgreement": user.kakaoAccount?.profileNeedsAgreement as Any
|
|
308
|
+
])
|
|
309
|
+
} else {
|
|
310
|
+
RNCKakaoUtil.reject(reject, "user not found")
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
276
315
|
private func emptyArrayToNil<T>(_ arr: [T]?) -> [T]? {
|
|
277
316
|
if arr == nil || arr?.isEmpty == true { return nil }
|
|
278
317
|
return arr
|
package/lib/commonjs/index.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.isKakaoTalkLoginAvailable = isKakaoTalkLoginAvailable;
|
|
|
7
7
|
exports.isLogined = isLogined;
|
|
8
8
|
exports.login = login;
|
|
9
9
|
exports.logout = logout;
|
|
10
|
+
exports.me = me;
|
|
10
11
|
exports.revokeScopes = revokeScopes;
|
|
11
12
|
exports.scopes = scopes;
|
|
12
13
|
exports.serviceTerms = serviceTerms;
|
|
@@ -20,7 +21,7 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
|
|
|
20
21
|
|
|
21
22
|
// @ts-expect-error
|
|
22
23
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
23
|
-
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.
|
|
24
|
+
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.RNCKakaoUser;
|
|
24
25
|
const Native = Module ? Module : new Proxy({}, {
|
|
25
26
|
get() {
|
|
26
27
|
throw new Error(LINKING_ERROR);
|
|
@@ -29,9 +30,9 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
29
30
|
function login({
|
|
30
31
|
serviceTerms,
|
|
31
32
|
prompts,
|
|
32
|
-
|
|
33
|
+
useKakaoAccountLogin
|
|
33
34
|
} = {}) {
|
|
34
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
35
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
35
36
|
}
|
|
36
37
|
function logout() {
|
|
37
38
|
return Native.logout();
|
|
@@ -57,4 +58,7 @@ function serviceTerms() {
|
|
|
57
58
|
function shippingAddresses() {
|
|
58
59
|
return Native.shippingAddresses();
|
|
59
60
|
}
|
|
61
|
+
function me() {
|
|
62
|
+
return Native.me();
|
|
63
|
+
}
|
|
60
64
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,MAAMC,aAAa,GACjB,mFAAmF,GACnFC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BN,OAAO,CAAC,wBAAwB,CAAC,CAACK,OAAO,GACzCK,0BAAa,CAACC,YAAY;AAE9B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACd,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EE,SAASe,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,oBAAoB,IAAI,KAAK,CAAC;AACvF;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC;AAEO,SAASC,EAAEA,CAAA,EAAuB;EACvC,OAAOf,MAAM,CAACe,EAAE,CAAC,CAAC;AACpB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GA+BpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -6,7 +6,7 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
|
|
|
6
6
|
|
|
7
7
|
// @ts-expect-error
|
|
8
8
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
9
|
-
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.
|
|
9
|
+
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.RNCKakaoUser;
|
|
10
10
|
const Native = Module ? Module : new Proxy({}, {
|
|
11
11
|
get() {
|
|
12
12
|
throw new Error(LINKING_ERROR);
|
|
@@ -15,9 +15,9 @@ const Native = Module ? Module : new Proxy({}, {
|
|
|
15
15
|
export function login({
|
|
16
16
|
serviceTerms,
|
|
17
17
|
prompts,
|
|
18
|
-
|
|
18
|
+
useKakaoAccountLogin
|
|
19
19
|
} = {}) {
|
|
20
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
20
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
21
21
|
}
|
|
22
22
|
export function logout() {
|
|
23
23
|
return Native.logout();
|
|
@@ -43,4 +43,7 @@ export function serviceTerms() {
|
|
|
43
43
|
export function shippingAddresses() {
|
|
44
44
|
return Native.shippingAddresses();
|
|
45
45
|
}
|
|
46
|
+
export function me() {
|
|
47
|
+
return Native.me();
|
|
48
|
+
}
|
|
46
49
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","logout","unlink","isLogined","isKakaoTalkLoginAvailable","scopes","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAItD,MAAMC,aAAa,GACjB,mFAAmF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;;AAEjC;AACA,MAAMC,oBAAoB,GAAGC,MAAM,CAACC,kBAAkB,IAAI,IAAI;AAE9D,MAAMC,MAAM,GAAGH,oBAAoB,GAC/BI,OAAO,CAAC,wBAAwB,CAAC,CAACL,OAAO,GACzCL,aAAa,CAACW,YAAY;AAE9B,MAAMC,MAAY,GAAGH,MAAM,GACvBA,MAAM,GACN,IAAII,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACb,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AA2EL,OAAO,SAASc,KAAKA,CAAC;EACpBC,YAAY;EACZC,OAAO;EACPC;AAKF,CAAC,GAAG,CAAC,CAAC,EAA4B;EAChC,OAAOP,MAAM,CAACI,KAAK,CAACC,YAAY,IAAI,EAAE,EAAEC,OAAO,IAAI,EAAE,EAAEC,oBAAoB,IAAI,KAAK,CAAC;AACvF;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOR,MAAM,CAACQ,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,MAAMA,CAAA,EAAG;EACvB,OAAOT,MAAM,CAACS,MAAM,CAAC,CAAC;AACxB;AAEA,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,OAAOV,MAAM,CAACU,SAAS,CAAC,CAAC;AAC3B;AAEA,OAAO,SAASC,yBAAyBA,CAAA,EAAqB;EAC5D,OAAOX,MAAM,CAACW,yBAAyB,CAAC,CAAC;AAC3C;AAEA,OAAO,SAASC,MAAMA,CAACA,MAAiB,EAA6B;EACnE,OAAOZ,MAAM,CAACY,MAAM,CAACA,MAAM,CAAC;AAC9B;AAEA,OAAO,SAASC,YAAYA,CAACD,MAAgB,EAAiB;EAC5D,OAAOZ,MAAM,CAACa,YAAY,CAACD,MAAM,CAAC;AACpC;AAEA,OAAO,SAASP,YAAYA,CAAA,EAGzB;EACD,OAAOL,MAAM,CAACK,YAAY,CAAC,CAAC;AAC9B;AAEA,OAAO,SAASS,iBAAiBA,CAAA,EAAwC;EACvE,OAAOd,MAAM,CAACc,iBAAiB,CAAC,CAAC;AACnC;AAEA,OAAO,SAASC,EAAEA,CAAA,EAAuB;EACvC,OAAOf,MAAM,CAACe,EAAE,CAAC,CAAC;AACpB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["spec/NativeKakaoUser.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AA+BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type KakaoLoginToken = {
|
|
2
2
|
accessToken: string;
|
|
3
3
|
refreshToken: string;
|
|
4
|
-
tokenType
|
|
4
|
+
tokenType?: string;
|
|
5
5
|
idToken?: string;
|
|
6
6
|
accessTokenExpiresAt: number;
|
|
7
7
|
refreshTokenExpiresAt: number;
|
|
@@ -46,10 +46,35 @@ export type KakaoShippingAddress = {
|
|
|
46
46
|
zoneNumber?: string;
|
|
47
47
|
zipCode?: string;
|
|
48
48
|
};
|
|
49
|
-
export
|
|
49
|
+
export type KakaoUser = {
|
|
50
|
+
id: number;
|
|
51
|
+
email: string;
|
|
52
|
+
name: string;
|
|
53
|
+
nickname: string;
|
|
54
|
+
profileImageUrl: string;
|
|
55
|
+
thumbnailImageUrl: string;
|
|
56
|
+
phoneNumber: string;
|
|
57
|
+
ageRange: string;
|
|
58
|
+
birthday: string;
|
|
59
|
+
birthdayType: string;
|
|
60
|
+
birthyear: string;
|
|
61
|
+
gender: string;
|
|
62
|
+
isEmailValid: boolean;
|
|
63
|
+
isEmailVerified: boolean;
|
|
64
|
+
isKorean: boolean;
|
|
65
|
+
ageRangeNeedsAgreement?: boolean;
|
|
66
|
+
birthdayNeedsAgreement?: boolean;
|
|
67
|
+
birthyearNeedsAgreement?: boolean;
|
|
68
|
+
emailNeedsAgreement?: boolean;
|
|
69
|
+
genderNeedsAgreement?: boolean;
|
|
70
|
+
isKoreanNeedsAgreement?: boolean;
|
|
71
|
+
phoneNumberNeedsAgreement?: boolean;
|
|
72
|
+
profileNeedsAgreement?: boolean;
|
|
73
|
+
};
|
|
74
|
+
export declare function login({ serviceTerms, prompts, useKakaoAccountLogin, }?: {
|
|
50
75
|
serviceTerms?: string[];
|
|
51
|
-
prompts?:
|
|
52
|
-
|
|
76
|
+
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
77
|
+
useKakaoAccountLogin?: boolean;
|
|
53
78
|
}): Promise<KakaoLoginToken>;
|
|
54
79
|
export declare function logout(): Promise<void>;
|
|
55
80
|
export declare function unlink(): Promise<void>;
|
|
@@ -62,4 +87,5 @@ export declare function serviceTerms(): Promise<{
|
|
|
62
87
|
appServiceTerms?: KakaoAppServiceTerms[];
|
|
63
88
|
}>;
|
|
64
89
|
export declare function shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
90
|
+
export declare function me(): Promise<KakaoUser>;
|
|
65
91
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AA4BA,MAAM,MAAM,eAAe,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
|
-
import type { KakaoAppServiceTerms, KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult } from '..';
|
|
2
|
+
import type { KakaoAppServiceTerms, KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult, KakaoUser } from '..';
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
4
|
isKakaoTalkLoginAvailable(): Promise<boolean>;
|
|
5
|
-
login(serviceTerms: string[], prompts: string[],
|
|
5
|
+
login(serviceTerms: string[], prompts: string[], useKakaoAccountLogin: boolean): Promise<KakaoLoginToken>;
|
|
6
6
|
logout(): Promise<void>;
|
|
7
7
|
unlink(): Promise<void>;
|
|
8
8
|
isLogined(): Promise<boolean>;
|
|
@@ -13,6 +13,7 @@ export interface Spec extends TurboModule {
|
|
|
13
13
|
appServiceTerms?: KakaoAppServiceTerms[];
|
|
14
14
|
}>;
|
|
15
15
|
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
16
|
+
me(): Promise<KakaoUser>;
|
|
16
17
|
}
|
|
17
18
|
declare const _default: Spec;
|
|
18
19
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeKakaoUser.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"NativeKakaoUser.d.ts","sourceRoot":"","sources":["../../../../src/spec/NativeKakaoUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAC1B,SAAS,EACV,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CACH,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,EAAE,MAAM,EAAE,EACjB,oBAAoB,EAAE,OAAO,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC;IAC5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,YAAY,IAAI,OAAO,CAAC;QACtB,mBAAmB,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC1C,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;KAC1C,CAAC,CAAC;IACH,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzD,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;CAC1B;;AAED,wBAAsE"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-native-kakao/user",
|
|
3
3
|
"description": "React Native Kakao User SDK",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.1",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
7
7
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -107,5 +107,5 @@
|
|
|
107
107
|
"javaPackageName": "net.mjstudio.rnkakao.user"
|
|
108
108
|
}
|
|
109
109
|
},
|
|
110
|
-
"gitHead": "
|
|
110
|
+
"gitHead": "bbdcef0f45c18ff6084230e6b800251216c26401"
|
|
111
111
|
}
|
package/src/index.tsx
CHANGED
|
@@ -13,7 +13,7 @@ const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
|
13
13
|
|
|
14
14
|
const Module = isTurboModuleEnabled
|
|
15
15
|
? require('./spec/NativeKakaoUser').default
|
|
16
|
-
: NativeModules.
|
|
16
|
+
: NativeModules.RNCKakaoUser;
|
|
17
17
|
|
|
18
18
|
const Native: Spec = Module
|
|
19
19
|
? Module
|
|
@@ -29,7 +29,7 @@ const Native: Spec = Module
|
|
|
29
29
|
export type KakaoLoginToken = {
|
|
30
30
|
accessToken: string;
|
|
31
31
|
refreshToken: string;
|
|
32
|
-
tokenType
|
|
32
|
+
tokenType?: string;
|
|
33
33
|
idToken?: string;
|
|
34
34
|
accessTokenExpiresAt: number;
|
|
35
35
|
refreshTokenExpiresAt: number;
|
|
@@ -74,16 +74,41 @@ export type KakaoShippingAddress = {
|
|
|
74
74
|
zoneNumber?: string;
|
|
75
75
|
zipCode?: string;
|
|
76
76
|
};
|
|
77
|
+
export type KakaoUser = {
|
|
78
|
+
id: number;
|
|
79
|
+
email: string;
|
|
80
|
+
name: string;
|
|
81
|
+
nickname: string;
|
|
82
|
+
profileImageUrl: string;
|
|
83
|
+
thumbnailImageUrl: string;
|
|
84
|
+
phoneNumber: string;
|
|
85
|
+
ageRange: string;
|
|
86
|
+
birthday: string;
|
|
87
|
+
birthdayType: string;
|
|
88
|
+
birthyear: string;
|
|
89
|
+
gender: string;
|
|
90
|
+
isEmailValid: boolean;
|
|
91
|
+
isEmailVerified: boolean;
|
|
92
|
+
isKorean: boolean;
|
|
93
|
+
ageRangeNeedsAgreement?: boolean;
|
|
94
|
+
birthdayNeedsAgreement?: boolean;
|
|
95
|
+
birthyearNeedsAgreement?: boolean;
|
|
96
|
+
emailNeedsAgreement?: boolean;
|
|
97
|
+
genderNeedsAgreement?: boolean;
|
|
98
|
+
isKoreanNeedsAgreement?: boolean;
|
|
99
|
+
phoneNumberNeedsAgreement?: boolean;
|
|
100
|
+
profileNeedsAgreement?: boolean;
|
|
101
|
+
};
|
|
77
102
|
export function login({
|
|
78
103
|
serviceTerms,
|
|
79
104
|
prompts,
|
|
80
|
-
|
|
105
|
+
useKakaoAccountLogin,
|
|
81
106
|
}: {
|
|
82
107
|
serviceTerms?: string[];
|
|
83
|
-
prompts?:
|
|
84
|
-
|
|
108
|
+
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
109
|
+
useKakaoAccountLogin?: boolean;
|
|
85
110
|
} = {}): Promise<KakaoLoginToken> {
|
|
86
|
-
return Native.login(serviceTerms ?? [], prompts ?? [],
|
|
111
|
+
return Native.login(serviceTerms ?? [], prompts ?? [], useKakaoAccountLogin ?? false);
|
|
87
112
|
}
|
|
88
113
|
|
|
89
114
|
export function logout() {
|
|
@@ -120,3 +145,7 @@ export function serviceTerms(): Promise<{
|
|
|
120
145
|
export function shippingAddresses(): Promise<KakaoShippingAddressResult> {
|
|
121
146
|
return Native.shippingAddresses();
|
|
122
147
|
}
|
|
148
|
+
|
|
149
|
+
export function me(): Promise<KakaoUser> {
|
|
150
|
+
return Native.me();
|
|
151
|
+
}
|
|
@@ -7,6 +7,7 @@ import type {
|
|
|
7
7
|
KakaoScopeInfo,
|
|
8
8
|
KakaoServiceTerms,
|
|
9
9
|
KakaoShippingAddressResult,
|
|
10
|
+
KakaoUser,
|
|
10
11
|
} from '..';
|
|
11
12
|
|
|
12
13
|
export interface Spec extends TurboModule {
|
|
@@ -14,7 +15,7 @@ export interface Spec extends TurboModule {
|
|
|
14
15
|
login(
|
|
15
16
|
serviceTerms: string[],
|
|
16
17
|
prompts: string[],
|
|
17
|
-
|
|
18
|
+
useKakaoAccountLogin: boolean,
|
|
18
19
|
): Promise<KakaoLoginToken>;
|
|
19
20
|
logout(): Promise<void>;
|
|
20
21
|
unlink(): Promise<void>;
|
|
@@ -26,6 +27,7 @@ export interface Spec extends TurboModule {
|
|
|
26
27
|
appServiceTerms?: KakaoAppServiceTerms[];
|
|
27
28
|
}>;
|
|
28
29
|
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
30
|
+
me(): Promise<KakaoUser>;
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoUser');
|