@react-native-kakao/user 1.7.0 → 2.1.0
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 +23 -6
- package/android/src/oldarch/KakaoUserSpec.kt +2 -0
- package/ios/RNCKakaoUser.mm +6 -0
- package/ios/RNCKakaoUserManager.swift +21 -0
- package/lib/commonjs/index.js +30 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +192 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/spec/NativeKakaoUser.js.map +1 -1
- package/lib/module/index.js +26 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +171 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/spec/NativeKakaoUser.js.map +1 -1
- package/lib/typescript/src/index.d.ts +63 -14
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/index.web.d.ts +5 -0
- package/lib/typescript/src/index.web.d.ts.map +1 -0
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts +2 -1
- package/lib/typescript/src/spec/NativeKakaoUser.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/{index.tsx → index.ts} +72 -15
- package/src/index.web.ts +204 -0
- package/src/spec/NativeKakaoUser.ts +2 -0
|
@@ -12,7 +12,6 @@ import com.kakao.sdk.auth.model.Prompt.CREATE
|
|
|
12
12
|
import com.kakao.sdk.auth.model.Prompt.LOGIN
|
|
13
13
|
import com.kakao.sdk.auth.model.Prompt.SELECT_ACCOUNT
|
|
14
14
|
import com.kakao.sdk.auth.model.Prompt.UNIFY_DAUM
|
|
15
|
-
import com.kakao.sdk.common.model.KakaoSdkError
|
|
16
15
|
import com.kakao.sdk.user.UserApiClient
|
|
17
16
|
import net.mjstudio.rnkakao.core.util.RNCKakaoResponseNotFoundException
|
|
18
17
|
import net.mjstudio.rnkakao.core.util.RNCKakaoUtil
|
|
@@ -24,6 +23,8 @@ import net.mjstudio.rnkakao.core.util.pushMapList
|
|
|
24
23
|
import net.mjstudio.rnkakao.core.util.pushStringList
|
|
25
24
|
import net.mjstudio.rnkakao.core.util.putB
|
|
26
25
|
import net.mjstudio.rnkakao.core.util.putD
|
|
26
|
+
import net.mjstudio.rnkakao.core.util.putI
|
|
27
|
+
import net.mjstudio.rnkakao.core.util.putL
|
|
27
28
|
import net.mjstudio.rnkakao.core.util.rejectWith
|
|
28
29
|
import net.mjstudio.rnkakao.core.util.unix
|
|
29
30
|
import java.util.Date
|
|
@@ -156,11 +157,7 @@ class RNCKakaoUserModule internal constructor(context: ReactApplicationContext)
|
|
|
156
157
|
if (AuthApiClient.instance.hasToken()) {
|
|
157
158
|
UserApiClient.instance.accessTokenInfo { _, error ->
|
|
158
159
|
if (error != null) {
|
|
159
|
-
|
|
160
|
-
promise.resolve(false)
|
|
161
|
-
} else {
|
|
162
|
-
promise.rejectWith(error)
|
|
163
|
-
}
|
|
160
|
+
promise.rejectWith(error)
|
|
164
161
|
} else {
|
|
165
162
|
promise.resolve(true)
|
|
166
163
|
}
|
|
@@ -373,6 +370,26 @@ class RNCKakaoUserModule internal constructor(context: ReactApplicationContext)
|
|
|
373
370
|
}
|
|
374
371
|
}
|
|
375
372
|
|
|
373
|
+
@ReactMethod
|
|
374
|
+
override fun getAccessToken(promise: Promise) =
|
|
375
|
+
onMain {
|
|
376
|
+
UserApiClient.instance.accessTokenInfo { accessTokenInfo, error ->
|
|
377
|
+
if (error != null) {
|
|
378
|
+
promise.rejectWith(error)
|
|
379
|
+
} else if (accessTokenInfo == null) {
|
|
380
|
+
promise.rejectWith(RNCKakaoResponseNotFoundException("accessTokenInfo"))
|
|
381
|
+
} else {
|
|
382
|
+
promise.resolve(
|
|
383
|
+
argMap().apply {
|
|
384
|
+
putL("id", accessTokenInfo.id)
|
|
385
|
+
putL("expiresIn", accessTokenInfo.expiresIn)
|
|
386
|
+
putI("appID", accessTokenInfo.appId)
|
|
387
|
+
},
|
|
388
|
+
)
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
376
393
|
companion object {
|
|
377
394
|
const val NAME = "RNCKakaoUser"
|
|
378
395
|
}
|
package/ios/RNCKakaoUser.mm
CHANGED
|
@@ -73,6 +73,12 @@ RCT_EXPORT_METHOD(me : (RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejec
|
|
|
73
73
|
[[self manager] me:resolve reject:reject];
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
RCT_EXPORT_METHOD(getAccessToken
|
|
77
|
+
: (RCTPromiseResolveBlock)resolve reject
|
|
78
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
79
|
+
[[self manager] getAccessToken:resolve reject:reject];
|
|
80
|
+
}
|
|
81
|
+
|
|
76
82
|
// Don't compile this code when we build for the old architecture.
|
|
77
83
|
#ifdef RCT_NEW_ARCH_ENABLED
|
|
78
84
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
@@ -291,6 +291,27 @@ import RNCKakaoCore
|
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
+
@objc public func getAccessToken(
|
|
295
|
+
_ resolve: @escaping RCTPromiseResolveBlock,
|
|
296
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
297
|
+
) {
|
|
298
|
+
onMain {
|
|
299
|
+
UserApi.shared.accessTokenInfo { accessTokenInfo, error in
|
|
300
|
+
if let error {
|
|
301
|
+
RNCKakaoUtil.reject(reject, error)
|
|
302
|
+
} else if let accessTokenInfo {
|
|
303
|
+
resolve([
|
|
304
|
+
"id": accessTokenInfo.id as Any,
|
|
305
|
+
"appId": accessTokenInfo.appId,
|
|
306
|
+
"expiresIn": accessTokenInfo.expiresIn
|
|
307
|
+
])
|
|
308
|
+
} else {
|
|
309
|
+
RNCKakaoUtil.reject(reject, RNCKakaoError.responseNotFound(name: "accessTokenInfo"))
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
294
315
|
private func emptyArrayToNil<T>(_ arr: [T]?) -> [T]? {
|
|
295
316
|
if arr == nil || arr?.isEmpty == true { return nil }
|
|
296
317
|
return arr
|
package/lib/commonjs/index.js
CHANGED
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
exports.getAccessToken = getAccessToken;
|
|
6
8
|
exports.isKakaoTalkLoginAvailable = isKakaoTalkLoginAvailable;
|
|
7
9
|
exports.isLogined = isLogined;
|
|
10
|
+
exports.issueAccessTokenWithCodeWeb = issueAccessTokenWithCodeWeb;
|
|
8
11
|
exports.login = login;
|
|
9
12
|
exports.logout = logout;
|
|
10
13
|
exports.me = me;
|
|
11
14
|
exports.revokeScopes = revokeScopes;
|
|
12
15
|
exports.scopes = scopes;
|
|
13
16
|
exports.serviceTerms = serviceTerms;
|
|
17
|
+
exports.setAccessTokenWeb = setAccessTokenWeb;
|
|
14
18
|
exports.shippingAddresses = shippingAddresses;
|
|
15
19
|
exports.unlink = unlink;
|
|
16
20
|
var _reactNative = require("react-native");
|
|
@@ -20,8 +24,6 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
|
|
|
20
24
|
ios: "- You have run 'pod install'\n",
|
|
21
25
|
default: ''
|
|
22
26
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
23
|
-
|
|
24
|
-
// @ts-expect-error
|
|
25
27
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
26
28
|
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : _reactNative.NativeModules.RNCKakaoUser;
|
|
27
29
|
const Native = Module ? Module : new Proxy({}, {
|
|
@@ -66,4 +68,30 @@ function shippingAddresses() {
|
|
|
66
68
|
function me() {
|
|
67
69
|
return Native.me();
|
|
68
70
|
}
|
|
71
|
+
function getAccessToken() {
|
|
72
|
+
return Native.getAccessToken();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
76
|
+
function setAccessTokenWeb(token) {}
|
|
77
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
78
|
+
async function issueAccessTokenWithCodeWeb(params) {
|
|
79
|
+
return {};
|
|
80
|
+
}
|
|
81
|
+
const KakaoUser = {
|
|
82
|
+
login,
|
|
83
|
+
logout,
|
|
84
|
+
unlink,
|
|
85
|
+
isLogined,
|
|
86
|
+
isKakaoTalkLoginAvailable,
|
|
87
|
+
scopes,
|
|
88
|
+
revokeScopes,
|
|
89
|
+
serviceTerms,
|
|
90
|
+
shippingAddresses,
|
|
91
|
+
me,
|
|
92
|
+
getAccessToken,
|
|
93
|
+
setAccessTokenWeb,
|
|
94
|
+
issueAccessTokenWithCodeWeb
|
|
95
|
+
};
|
|
96
|
+
var _default = exports.default = KakaoUser;
|
|
69
97
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_jsUtil","_core","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","scopes","kAssert","is","notEmptyArray","logout","unlink","isLogined","isKakaoTalkLoginAvailable","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_jsUtil","_core","LINKING_ERROR","Platform","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","NativeModules","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","scopes","kAssert","is","notEmptyArray","logout","unlink","isLogined","isKakaoTalkLoginAvailable","revokeScopes","shippingAddresses","me","getAccessToken","setAccessTokenWeb","token","issueAccessTokenWithCodeWeb","params","KakaoUser","_default","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.unlink = exports.shippingAddresses = exports.setAccessTokenWeb = exports.serviceTerms = exports.scopes = exports.revokeScopes = exports.me = exports.logout = exports.login = exports.issueAccessTokenWithCodeWeb = exports.isLogined = exports.isKakaoTalkLoginAvailable = exports.getAccessToken = void 0;
|
|
7
|
+
var _jsUtil = require("@mj-studio/js-util");
|
|
8
|
+
var _core = require("@react-native-kakao/core");
|
|
9
|
+
var querystring = _interopRequireWildcard(require("querystring"));
|
|
10
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
11
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
12
|
+
function isoToUnix(value) {
|
|
13
|
+
if (!_jsUtil.is.string(value)) {
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
return Date.parse(value) / 1000;
|
|
17
|
+
}
|
|
18
|
+
const KakaoUser = {
|
|
19
|
+
getAccessToken: async () => {
|
|
20
|
+
try {
|
|
21
|
+
const {
|
|
22
|
+
id,
|
|
23
|
+
expires_in,
|
|
24
|
+
app_id
|
|
25
|
+
} = (await (0, _core.kFetch)('https://kapi.kakao.com/v1/user/access_token_info', {
|
|
26
|
+
headers: {
|
|
27
|
+
..._core.kGlobalStorage.headers
|
|
28
|
+
}
|
|
29
|
+
})).body;
|
|
30
|
+
return {
|
|
31
|
+
id,
|
|
32
|
+
expiresIn: expires_in,
|
|
33
|
+
appId: app_id
|
|
34
|
+
};
|
|
35
|
+
} catch (e) {
|
|
36
|
+
throw (0, _core.kCreateWebError)(e);
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
issueAccessTokenWithCodeWeb: async ({
|
|
40
|
+
clientSecret,
|
|
41
|
+
code,
|
|
42
|
+
redirectUri
|
|
43
|
+
}) => {
|
|
44
|
+
try {
|
|
45
|
+
const res = await (0, _core.kFetchFormUrlEncoded)('https://kauth.kakao.com/oauth/token', {
|
|
46
|
+
method: 'POST',
|
|
47
|
+
body: (0, _jsUtil.filterNonNullishKeys)({
|
|
48
|
+
grant_type: 'authorization_code',
|
|
49
|
+
client_id: _core.kGlobalStorage.restApiKey,
|
|
50
|
+
redirect_uri: encodeURIComponent(redirectUri),
|
|
51
|
+
code,
|
|
52
|
+
client_secret: clientSecret
|
|
53
|
+
})
|
|
54
|
+
}).then(r => r.body);
|
|
55
|
+
return (0, _jsUtil.camelCaseObject)(res);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
throw (0, _core.kCreateWebError)(e);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
setAccessTokenWeb: token => {
|
|
61
|
+
_core.kGlobalStorage.accessToken = token;
|
|
62
|
+
return new Promise(r => {
|
|
63
|
+
Kakao.Auth.setAccessToken(token);
|
|
64
|
+
r(42);
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
login: async params => {
|
|
68
|
+
const {
|
|
69
|
+
loginHint,
|
|
70
|
+
nonce,
|
|
71
|
+
prompt,
|
|
72
|
+
redirectUri,
|
|
73
|
+
scope,
|
|
74
|
+
state,
|
|
75
|
+
throughTalk,
|
|
76
|
+
serviceTerms
|
|
77
|
+
} = (params === null || params === void 0 ? void 0 : params.web) ?? {};
|
|
78
|
+
return Kakao.Auth.authorize((0, _jsUtil.filterNonNullishKeys)({
|
|
79
|
+
loginHint,
|
|
80
|
+
nonce,
|
|
81
|
+
prompt: prompt === null || prompt === void 0 ? void 0 : prompt.join(','),
|
|
82
|
+
redirectUri,
|
|
83
|
+
scope: scope === null || scope === void 0 ? void 0 : scope.join(','),
|
|
84
|
+
serviceTerms: serviceTerms === null || serviceTerms === void 0 ? void 0 : serviceTerms.join(','),
|
|
85
|
+
state,
|
|
86
|
+
throughTalk
|
|
87
|
+
}));
|
|
88
|
+
},
|
|
89
|
+
logout: () => Kakao.Auth.logout().catch(_core.kCreateWebError),
|
|
90
|
+
isLogined: async () => {
|
|
91
|
+
try {
|
|
92
|
+
const {
|
|
93
|
+
appId
|
|
94
|
+
} = await KakaoUser.getAccessToken();
|
|
95
|
+
return !!appId;
|
|
96
|
+
} catch (e) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
isKakaoTalkLoginAvailable: async () => false,
|
|
101
|
+
unlink: () => Kakao.API.request({
|
|
102
|
+
url: '/v1/user/unlink'
|
|
103
|
+
}).catch(_core.kCreateWebError),
|
|
104
|
+
scopes: async scopes => {
|
|
105
|
+
try {
|
|
106
|
+
const response = await Kakao.API.request({
|
|
107
|
+
url: `/v2/user/scopes${scopes ? '?' + querystring.stringify({
|
|
108
|
+
scopes
|
|
109
|
+
}) : ''}`
|
|
110
|
+
});
|
|
111
|
+
return (0, _jsUtil.camelCaseObject)(response.scopes);
|
|
112
|
+
} catch (e) {
|
|
113
|
+
throw (0, _core.kCreateWebError)(e);
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
revokeScopes: async scopes => {
|
|
117
|
+
try {
|
|
118
|
+
await Kakao.API.request({
|
|
119
|
+
url: '/v2/user/revoke/scopes',
|
|
120
|
+
data: {
|
|
121
|
+
scopes
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
} catch (e) {
|
|
125
|
+
throw (0, _core.kCreateWebError)(e);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
serviceTerms: async () => {
|
|
129
|
+
try {
|
|
130
|
+
return (0, _jsUtil.camelCaseObject)((await Kakao.API.request({
|
|
131
|
+
url: '/v2/user/service_terms'
|
|
132
|
+
})).service_terms.map(v => ({
|
|
133
|
+
...v,
|
|
134
|
+
agreed_at: v.agreed_at ? isoToUnix(v.agreed_at) : null
|
|
135
|
+
})));
|
|
136
|
+
} catch (e) {
|
|
137
|
+
throw (0, _core.kCreateWebError)(e);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
shippingAddresses: async () => {
|
|
141
|
+
try {
|
|
142
|
+
return (0, _jsUtil.camelCaseObject)(await Kakao.API.request({
|
|
143
|
+
url: '/v1/user/shipping_address'
|
|
144
|
+
}));
|
|
145
|
+
} catch (e) {
|
|
146
|
+
throw (0, _core.kCreateWebError)(e);
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
me: async () => {
|
|
150
|
+
try {
|
|
151
|
+
const ret = (0, _jsUtil.camelCaseObject)(await Kakao.API.request({
|
|
152
|
+
url: '/v2/user/me'
|
|
153
|
+
}));
|
|
154
|
+
return {
|
|
155
|
+
...ret,
|
|
156
|
+
connectedAt: isoToUnix(ret.connectedAt),
|
|
157
|
+
synchedAt: isoToUnix(ret.synchedAt)
|
|
158
|
+
};
|
|
159
|
+
} catch (e) {
|
|
160
|
+
throw (0, _core.kCreateWebError)(e);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
const {
|
|
165
|
+
isKakaoTalkLoginAvailable,
|
|
166
|
+
isLogined,
|
|
167
|
+
login,
|
|
168
|
+
logout,
|
|
169
|
+
me,
|
|
170
|
+
revokeScopes,
|
|
171
|
+
scopes,
|
|
172
|
+
serviceTerms,
|
|
173
|
+
shippingAddresses,
|
|
174
|
+
unlink,
|
|
175
|
+
setAccessTokenWeb,
|
|
176
|
+
issueAccessTokenWithCodeWeb,
|
|
177
|
+
getAccessToken
|
|
178
|
+
} = KakaoUser;
|
|
179
|
+
exports.getAccessToken = getAccessToken;
|
|
180
|
+
exports.issueAccessTokenWithCodeWeb = issueAccessTokenWithCodeWeb;
|
|
181
|
+
exports.setAccessTokenWeb = setAccessTokenWeb;
|
|
182
|
+
exports.unlink = unlink;
|
|
183
|
+
exports.shippingAddresses = shippingAddresses;
|
|
184
|
+
exports.serviceTerms = serviceTerms;
|
|
185
|
+
exports.scopes = scopes;
|
|
186
|
+
exports.revokeScopes = revokeScopes;
|
|
187
|
+
exports.me = me;
|
|
188
|
+
exports.logout = logout;
|
|
189
|
+
exports.login = login;
|
|
190
|
+
exports.isLogined = isLogined;
|
|
191
|
+
exports.isKakaoTalkLoginAvailable = isKakaoTalkLoginAvailable;
|
|
192
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_jsUtil","require","_core","querystring","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","isoToUnix","value","is","string","Date","parse","KakaoUser","getAccessToken","id","expires_in","app_id","kFetch","headers","kGlobalStorage","body","expiresIn","appId","kCreateWebError","issueAccessTokenWithCodeWeb","clientSecret","code","redirectUri","res","kFetchFormUrlEncoded","method","filterNonNullishKeys","grant_type","client_id","restApiKey","redirect_uri","encodeURIComponent","client_secret","then","camelCaseObject","setAccessTokenWeb","token","accessToken","Promise","Kakao","Auth","setAccessToken","login","params","loginHint","nonce","prompt","scope","state","throughTalk","serviceTerms","web","authorize","join","logout","catch","isLogined","isKakaoTalkLoginAvailable","unlink","API","request","url","scopes","response","stringify","revokeScopes","data","service_terms","map","v","agreed_at","shippingAddresses","me","ret","connectedAt","synchedAt","exports"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","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,GA8BpCC,gCAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -5,8 +5,6 @@ const LINKING_ERROR = "The package '@react-native-kakao/user' doesn't seem to be
|
|
|
5
5
|
ios: "- You have run 'pod install'\n",
|
|
6
6
|
default: ''
|
|
7
7
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
8
|
-
|
|
9
|
-
// @ts-expect-error
|
|
10
8
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
11
9
|
const Module = isTurboModuleEnabled ? require('./spec/NativeKakaoUser').default : NativeModules.RNCKakaoUser;
|
|
12
10
|
const Native = Module ? Module : new Proxy({}, {
|
|
@@ -51,4 +49,30 @@ export function shippingAddresses() {
|
|
|
51
49
|
export function me() {
|
|
52
50
|
return Native.me();
|
|
53
51
|
}
|
|
52
|
+
export function getAccessToken() {
|
|
53
|
+
return Native.getAccessToken();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
57
|
+
export function setAccessTokenWeb(token) {}
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
59
|
+
export async function issueAccessTokenWithCodeWeb(params) {
|
|
60
|
+
return {};
|
|
61
|
+
}
|
|
62
|
+
const KakaoUser = {
|
|
63
|
+
login,
|
|
64
|
+
logout,
|
|
65
|
+
unlink,
|
|
66
|
+
isLogined,
|
|
67
|
+
isKakaoTalkLoginAvailable,
|
|
68
|
+
scopes,
|
|
69
|
+
revokeScopes,
|
|
70
|
+
serviceTerms,
|
|
71
|
+
shippingAddresses,
|
|
72
|
+
me,
|
|
73
|
+
getAccessToken,
|
|
74
|
+
setAccessTokenWeb,
|
|
75
|
+
issueAccessTokenWithCodeWeb
|
|
76
|
+
};
|
|
77
|
+
export default KakaoUser;
|
|
54
78
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","is","kAssert","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","scopes","notEmptyArray","logout","unlink","isLogined","isKakaoTalkLoginAvailable","revokeScopes","shippingAddresses","me"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","is","kAssert","LINKING_ERROR","select","ios","default","isTurboModuleEnabled","global","__turboModuleProxy","Module","require","RNCKakaoUser","Native","Proxy","get","Error","login","serviceTerms","prompts","useKakaoAccountLogin","scopes","notEmptyArray","logout","unlink","isLogined","isKakaoTalkLoginAvailable","revokeScopes","shippingAddresses","me","getAccessToken","setAccessTokenWeb","token","issueAccessTokenWithCodeWeb","params","KakaoUser"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { camelCaseObject, filterNonNullishKeys, is } from '@mj-studio/js-util';
|
|
2
|
+
import { kCreateWebError, kFetch, kFetchFormUrlEncoded, kGlobalStorage } from '@react-native-kakao/core';
|
|
3
|
+
import * as querystring from 'querystring';
|
|
4
|
+
function isoToUnix(value) {
|
|
5
|
+
if (!is.string(value)) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
return Date.parse(value) / 1000;
|
|
9
|
+
}
|
|
10
|
+
const KakaoUser = {
|
|
11
|
+
getAccessToken: async () => {
|
|
12
|
+
try {
|
|
13
|
+
const {
|
|
14
|
+
id,
|
|
15
|
+
expires_in,
|
|
16
|
+
app_id
|
|
17
|
+
} = (await kFetch('https://kapi.kakao.com/v1/user/access_token_info', {
|
|
18
|
+
headers: {
|
|
19
|
+
...kGlobalStorage.headers
|
|
20
|
+
}
|
|
21
|
+
})).body;
|
|
22
|
+
return {
|
|
23
|
+
id,
|
|
24
|
+
expiresIn: expires_in,
|
|
25
|
+
appId: app_id
|
|
26
|
+
};
|
|
27
|
+
} catch (e) {
|
|
28
|
+
throw kCreateWebError(e);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
issueAccessTokenWithCodeWeb: async ({
|
|
32
|
+
clientSecret,
|
|
33
|
+
code,
|
|
34
|
+
redirectUri
|
|
35
|
+
}) => {
|
|
36
|
+
try {
|
|
37
|
+
const res = await kFetchFormUrlEncoded('https://kauth.kakao.com/oauth/token', {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
body: filterNonNullishKeys({
|
|
40
|
+
grant_type: 'authorization_code',
|
|
41
|
+
client_id: kGlobalStorage.restApiKey,
|
|
42
|
+
redirect_uri: encodeURIComponent(redirectUri),
|
|
43
|
+
code,
|
|
44
|
+
client_secret: clientSecret
|
|
45
|
+
})
|
|
46
|
+
}).then(r => r.body);
|
|
47
|
+
return camelCaseObject(res);
|
|
48
|
+
} catch (e) {
|
|
49
|
+
throw kCreateWebError(e);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
setAccessTokenWeb: token => {
|
|
53
|
+
kGlobalStorage.accessToken = token;
|
|
54
|
+
return new Promise(r => {
|
|
55
|
+
Kakao.Auth.setAccessToken(token);
|
|
56
|
+
r(42);
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
login: async params => {
|
|
60
|
+
const {
|
|
61
|
+
loginHint,
|
|
62
|
+
nonce,
|
|
63
|
+
prompt,
|
|
64
|
+
redirectUri,
|
|
65
|
+
scope,
|
|
66
|
+
state,
|
|
67
|
+
throughTalk,
|
|
68
|
+
serviceTerms
|
|
69
|
+
} = (params === null || params === void 0 ? void 0 : params.web) ?? {};
|
|
70
|
+
return Kakao.Auth.authorize(filterNonNullishKeys({
|
|
71
|
+
loginHint,
|
|
72
|
+
nonce,
|
|
73
|
+
prompt: prompt === null || prompt === void 0 ? void 0 : prompt.join(','),
|
|
74
|
+
redirectUri,
|
|
75
|
+
scope: scope === null || scope === void 0 ? void 0 : scope.join(','),
|
|
76
|
+
serviceTerms: serviceTerms === null || serviceTerms === void 0 ? void 0 : serviceTerms.join(','),
|
|
77
|
+
state,
|
|
78
|
+
throughTalk
|
|
79
|
+
}));
|
|
80
|
+
},
|
|
81
|
+
logout: () => Kakao.Auth.logout().catch(kCreateWebError),
|
|
82
|
+
isLogined: async () => {
|
|
83
|
+
try {
|
|
84
|
+
const {
|
|
85
|
+
appId
|
|
86
|
+
} = await KakaoUser.getAccessToken();
|
|
87
|
+
return !!appId;
|
|
88
|
+
} catch (e) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
isKakaoTalkLoginAvailable: async () => false,
|
|
93
|
+
unlink: () => Kakao.API.request({
|
|
94
|
+
url: '/v1/user/unlink'
|
|
95
|
+
}).catch(kCreateWebError),
|
|
96
|
+
scopes: async scopes => {
|
|
97
|
+
try {
|
|
98
|
+
const response = await Kakao.API.request({
|
|
99
|
+
url: `/v2/user/scopes${scopes ? '?' + querystring.stringify({
|
|
100
|
+
scopes
|
|
101
|
+
}) : ''}`
|
|
102
|
+
});
|
|
103
|
+
return camelCaseObject(response.scopes);
|
|
104
|
+
} catch (e) {
|
|
105
|
+
throw kCreateWebError(e);
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
revokeScopes: async scopes => {
|
|
109
|
+
try {
|
|
110
|
+
await Kakao.API.request({
|
|
111
|
+
url: '/v2/user/revoke/scopes',
|
|
112
|
+
data: {
|
|
113
|
+
scopes
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
} catch (e) {
|
|
117
|
+
throw kCreateWebError(e);
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
serviceTerms: async () => {
|
|
121
|
+
try {
|
|
122
|
+
return camelCaseObject((await Kakao.API.request({
|
|
123
|
+
url: '/v2/user/service_terms'
|
|
124
|
+
})).service_terms.map(v => ({
|
|
125
|
+
...v,
|
|
126
|
+
agreed_at: v.agreed_at ? isoToUnix(v.agreed_at) : null
|
|
127
|
+
})));
|
|
128
|
+
} catch (e) {
|
|
129
|
+
throw kCreateWebError(e);
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
shippingAddresses: async () => {
|
|
133
|
+
try {
|
|
134
|
+
return camelCaseObject(await Kakao.API.request({
|
|
135
|
+
url: '/v1/user/shipping_address'
|
|
136
|
+
}));
|
|
137
|
+
} catch (e) {
|
|
138
|
+
throw kCreateWebError(e);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
me: async () => {
|
|
142
|
+
try {
|
|
143
|
+
const ret = camelCaseObject(await Kakao.API.request({
|
|
144
|
+
url: '/v2/user/me'
|
|
145
|
+
}));
|
|
146
|
+
return {
|
|
147
|
+
...ret,
|
|
148
|
+
connectedAt: isoToUnix(ret.connectedAt),
|
|
149
|
+
synchedAt: isoToUnix(ret.synchedAt)
|
|
150
|
+
};
|
|
151
|
+
} catch (e) {
|
|
152
|
+
throw kCreateWebError(e);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
export const {
|
|
157
|
+
isKakaoTalkLoginAvailable,
|
|
158
|
+
isLogined,
|
|
159
|
+
login,
|
|
160
|
+
logout,
|
|
161
|
+
me,
|
|
162
|
+
revokeScopes,
|
|
163
|
+
scopes,
|
|
164
|
+
serviceTerms,
|
|
165
|
+
shippingAddresses,
|
|
166
|
+
unlink,
|
|
167
|
+
setAccessTokenWeb,
|
|
168
|
+
issueAccessTokenWithCodeWeb,
|
|
169
|
+
getAccessToken
|
|
170
|
+
} = KakaoUser;
|
|
171
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["camelCaseObject","filterNonNullishKeys","is","kCreateWebError","kFetch","kFetchFormUrlEncoded","kGlobalStorage","querystring","isoToUnix","value","string","Date","parse","KakaoUser","getAccessToken","id","expires_in","app_id","headers","body","expiresIn","appId","e","issueAccessTokenWithCodeWeb","clientSecret","code","redirectUri","res","method","grant_type","client_id","restApiKey","redirect_uri","encodeURIComponent","client_secret","then","r","setAccessTokenWeb","token","accessToken","Promise","Kakao","Auth","setAccessToken","login","params","loginHint","nonce","prompt","scope","state","throughTalk","serviceTerms","web","authorize","join","logout","catch","isLogined","isKakaoTalkLoginAvailable","unlink","API","request","url","scopes","response","stringify","revokeScopes","data","service_terms","map","v","agreed_at","shippingAddresses","me","ret","connectedAt","synchedAt"],"sourceRoot":"../../src","sources":["index.web.ts"],"mappings":"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","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;AA8BlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,cAAc,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export interface KakaoLoginToken {
|
|
2
2
|
accessToken: string;
|
|
3
3
|
refreshToken: string;
|
|
4
4
|
tokenType?: string;
|
|
@@ -8,8 +8,8 @@ export type KakaoLoginToken = {
|
|
|
8
8
|
accessTokenExpiresIn: number;
|
|
9
9
|
refreshTokenExpiresIn: number;
|
|
10
10
|
scopes: string[];
|
|
11
|
-
}
|
|
12
|
-
export
|
|
11
|
+
}
|
|
12
|
+
export interface KakaoScopeInfo {
|
|
13
13
|
id: string;
|
|
14
14
|
agreed: boolean;
|
|
15
15
|
displayName: string;
|
|
@@ -17,25 +17,25 @@ export type KakaoScopeInfo = {
|
|
|
17
17
|
using: boolean;
|
|
18
18
|
delegated?: boolean;
|
|
19
19
|
type: string;
|
|
20
|
-
}
|
|
21
|
-
export
|
|
20
|
+
}
|
|
21
|
+
export interface KakaoServiceTerms {
|
|
22
22
|
tag: string;
|
|
23
23
|
agreedAt?: number;
|
|
24
24
|
agreed: boolean;
|
|
25
25
|
required: boolean;
|
|
26
26
|
revocable: boolean;
|
|
27
|
-
}
|
|
28
|
-
export
|
|
27
|
+
}
|
|
28
|
+
export interface KakaoAppServiceTerms {
|
|
29
29
|
tag: string;
|
|
30
30
|
createdAt: number;
|
|
31
31
|
updatedAt: number;
|
|
32
|
-
}
|
|
33
|
-
export
|
|
32
|
+
}
|
|
33
|
+
export interface KakaoShippingAddressResult {
|
|
34
34
|
userId?: number;
|
|
35
35
|
needsAgreement?: boolean;
|
|
36
36
|
shippingAddresses: KakaoShippingAddress[];
|
|
37
|
-
}
|
|
38
|
-
export
|
|
37
|
+
}
|
|
38
|
+
export interface KakaoShippingAddress {
|
|
39
39
|
id: number;
|
|
40
40
|
name?: string;
|
|
41
41
|
isDefault: boolean;
|
|
@@ -48,8 +48,8 @@ export type KakaoShippingAddress = {
|
|
|
48
48
|
receiverPhoneNumber2?: string;
|
|
49
49
|
zoneNumber?: string;
|
|
50
50
|
zipCode?: string;
|
|
51
|
-
}
|
|
52
|
-
export
|
|
51
|
+
}
|
|
52
|
+
export interface KakaoUser {
|
|
53
53
|
id: number;
|
|
54
54
|
email: string;
|
|
55
55
|
name: string;
|
|
@@ -78,12 +78,29 @@ export type KakaoUser = {
|
|
|
78
78
|
profileImageNeedsAgreement?: boolean;
|
|
79
79
|
profileNicknameNeedsAgreement?: boolean;
|
|
80
80
|
legalBirthDateNeedsAgreement?: boolean;
|
|
81
|
-
|
|
81
|
+
connectedAt?: number;
|
|
82
|
+
synchedAt?: number;
|
|
83
|
+
}
|
|
84
|
+
export interface KakaoAccessTokenInfo {
|
|
85
|
+
id?: number;
|
|
86
|
+
appId: number;
|
|
87
|
+
expiresIn: number;
|
|
88
|
+
}
|
|
82
89
|
export declare function login({ serviceTerms, prompts, useKakaoAccountLogin, scopes, }?: {
|
|
83
90
|
serviceTerms?: string[];
|
|
84
91
|
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
85
92
|
scopes?: string[];
|
|
86
93
|
useKakaoAccountLogin?: boolean;
|
|
94
|
+
web?: {
|
|
95
|
+
redirectUri: string;
|
|
96
|
+
scope?: string[];
|
|
97
|
+
throughTalk?: boolean;
|
|
98
|
+
prompt?: ('login' | 'none' | 'create' | 'select_account')[];
|
|
99
|
+
loginHint?: string;
|
|
100
|
+
serviceTerms?: string[];
|
|
101
|
+
state?: string;
|
|
102
|
+
nonce?: string;
|
|
103
|
+
};
|
|
87
104
|
}): Promise<KakaoLoginToken>;
|
|
88
105
|
export declare function logout(): Promise<void>;
|
|
89
106
|
export declare function unlink(): Promise<void>;
|
|
@@ -94,4 +111,36 @@ export declare function revokeScopes(scopes: string[]): Promise<void>;
|
|
|
94
111
|
export declare function serviceTerms(): Promise<KakaoServiceTerms[]>;
|
|
95
112
|
export declare function shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
96
113
|
export declare function me(): Promise<KakaoUser>;
|
|
114
|
+
export declare function getAccessToken(): Promise<KakaoAccessTokenInfo>;
|
|
115
|
+
export declare function setAccessTokenWeb(token: string): void;
|
|
116
|
+
export declare function issueAccessTokenWithCodeWeb(params: {
|
|
117
|
+
redirectUri: string;
|
|
118
|
+
clientSecret?: string;
|
|
119
|
+
code: string;
|
|
120
|
+
}): Promise<{
|
|
121
|
+
tokenType: string;
|
|
122
|
+
accessToken: string;
|
|
123
|
+
idToken?: string;
|
|
124
|
+
expiresIn: number;
|
|
125
|
+
refreshToken: string;
|
|
126
|
+
refreshTokenExpiresIn: number;
|
|
127
|
+
scope?: string;
|
|
128
|
+
}>;
|
|
129
|
+
declare const KakaoUser: {
|
|
130
|
+
login: typeof login;
|
|
131
|
+
logout: typeof logout;
|
|
132
|
+
unlink: typeof unlink;
|
|
133
|
+
isLogined: typeof isLogined;
|
|
134
|
+
isKakaoTalkLoginAvailable: typeof isKakaoTalkLoginAvailable;
|
|
135
|
+
scopes: typeof scopes;
|
|
136
|
+
revokeScopes: typeof revokeScopes;
|
|
137
|
+
serviceTerms: typeof serviceTerms;
|
|
138
|
+
shippingAddresses: typeof shippingAddresses;
|
|
139
|
+
me: typeof me;
|
|
140
|
+
getAccessToken: typeof getAccessToken;
|
|
141
|
+
setAccessTokenWeb: typeof setAccessTokenWeb;
|
|
142
|
+
issueAccessTokenWithCodeWeb: typeof issueAccessTokenWithCodeWeb;
|
|
143
|
+
};
|
|
144
|
+
export default KakaoUser;
|
|
145
|
+
export type KakaoUserAPI = typeof KakaoUser;
|
|
97
146
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type KakaoUser, type KakaoUserAPI } from './index';
|
|
2
|
+
declare const KakaoUser: KakaoUserAPI;
|
|
3
|
+
export declare const isKakaoTalkLoginAvailable: typeof import("./index").isKakaoTalkLoginAvailable, isLogined: typeof import("./index").isLogined, login: typeof import("./index").login, logout: typeof import("./index").logout, me: typeof import("./index").me, revokeScopes: typeof import("./index").revokeScopes, scopes: typeof import("./index").scopes, serviceTerms: typeof import("./index").serviceTerms, shippingAddresses: typeof import("./index").shippingAddresses, unlink: typeof import("./index").unlink, setAccessTokenWeb: typeof import("./index").setAccessTokenWeb, issueAccessTokenWithCodeWeb: typeof import("./index").issueAccessTokenWithCodeWeb, getAccessToken: typeof import("./index").getAccessToken;
|
|
4
|
+
export default KakaoUser;
|
|
5
|
+
//# sourceMappingURL=index.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../../../src/index.web.ts"],"names":[],"mappings":"AASA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAmBjB,QAAA,MAAM,SAAS,EAAE,YAsJhB,CAAC;AAEF,eAAO,MACL,yBAAyB,sDACzB,SAAS,sCACT,KAAK,kCACL,MAAM,mCACN,EAAE,+BACF,YAAY,yCACZ,MAAM,mCACN,YAAY,yCACZ,iBAAiB,8CACjB,MAAM,mCACN,iBAAiB,8CACjB,2BAA2B,wDAC3B,cAAc,yCACH,CAAC;AAEd,eAAe,SAAS,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TurboModule } from 'react-native';
|
|
2
|
-
import type { KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult, KakaoUser } from '..';
|
|
2
|
+
import type { KakaoAccessTokenInfo, KakaoLoginToken, KakaoScopeInfo, KakaoServiceTerms, KakaoShippingAddressResult, KakaoUser } from '..';
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
4
|
isKakaoTalkLoginAvailable(): Promise<boolean>;
|
|
5
5
|
login(serviceTerms: string[], prompts: string[], useKakaoAccountLogin: boolean, scopes?: string[]): Promise<KakaoLoginToken>;
|
|
@@ -11,6 +11,7 @@ export interface Spec extends TurboModule {
|
|
|
11
11
|
serviceTerms(): Promise<KakaoServiceTerms[]>;
|
|
12
12
|
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
13
13
|
me(): Promise<KakaoUser>;
|
|
14
|
+
getAccessToken(): Promise<KakaoAccessTokenInfo>;
|
|
14
15
|
}
|
|
15
16
|
declare const _default: Spec;
|
|
16
17
|
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,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,EAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,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,iBAAiB,EAAE,CAAC,CAAC;IAC7C,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzD,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;
|
|
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,EAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,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,iBAAiB,EAAE,CAAC,CAAC;IAC7C,iBAAiB,IAAI,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACzD,EAAE,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACzB,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACjD;;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": "1.
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
|
7
7
|
"types": "lib/typescript/src/index.d.ts",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"access": "public"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@react-native-kakao/core": "1.
|
|
65
|
+
"@react-native-kakao/core": "2.1.0",
|
|
66
66
|
"@types/invariant": "^2",
|
|
67
67
|
"@types/jest": "^29.5.5",
|
|
68
68
|
"@types/react": "^18.2.44",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
"typescript": "5.1.6"
|
|
75
75
|
},
|
|
76
76
|
"peerDependencies": {
|
|
77
|
-
"@react-native-kakao/core": "1.
|
|
77
|
+
"@react-native-kakao/core": "2.1.0",
|
|
78
78
|
"react": "*",
|
|
79
79
|
"react-native": "*"
|
|
80
80
|
},
|
|
@@ -110,8 +110,8 @@
|
|
|
110
110
|
"javaPackageName": "net.mjstudio.rnkakao.user"
|
|
111
111
|
}
|
|
112
112
|
},
|
|
113
|
-
"gitHead": "
|
|
113
|
+
"gitHead": "925facd70f4e29d6b99e424661c2c35c1884494e",
|
|
114
114
|
"dependencies": {
|
|
115
|
-
"@mj-studio/js-util": "
|
|
115
|
+
"@mj-studio/js-util": "1.0.35"
|
|
116
116
|
}
|
|
117
117
|
}
|
|
@@ -10,7 +10,6 @@ const LINKING_ERROR =
|
|
|
10
10
|
'- You rebuilt the app after installing the package\n' +
|
|
11
11
|
'- You are not using Expo Go\n';
|
|
12
12
|
|
|
13
|
-
// @ts-expect-error
|
|
14
13
|
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
15
14
|
|
|
16
15
|
const Module = isTurboModuleEnabled
|
|
@@ -28,7 +27,7 @@ const Native: Spec = Module
|
|
|
28
27
|
},
|
|
29
28
|
);
|
|
30
29
|
|
|
31
|
-
export
|
|
30
|
+
export interface KakaoLoginToken {
|
|
32
31
|
accessToken: string;
|
|
33
32
|
refreshToken: string;
|
|
34
33
|
tokenType?: string;
|
|
@@ -38,8 +37,8 @@ export type KakaoLoginToken = {
|
|
|
38
37
|
accessTokenExpiresIn: number;
|
|
39
38
|
refreshTokenExpiresIn: number;
|
|
40
39
|
scopes: string[];
|
|
41
|
-
}
|
|
42
|
-
export
|
|
40
|
+
}
|
|
41
|
+
export interface KakaoScopeInfo {
|
|
43
42
|
id: string;
|
|
44
43
|
agreed: boolean;
|
|
45
44
|
displayName: string;
|
|
@@ -47,25 +46,25 @@ export type KakaoScopeInfo = {
|
|
|
47
46
|
using: boolean;
|
|
48
47
|
delegated?: boolean;
|
|
49
48
|
type: string;
|
|
50
|
-
}
|
|
51
|
-
export
|
|
49
|
+
}
|
|
50
|
+
export interface KakaoServiceTerms {
|
|
52
51
|
tag: string;
|
|
53
52
|
agreedAt?: number;
|
|
54
53
|
agreed: boolean;
|
|
55
54
|
required: boolean;
|
|
56
55
|
revocable: boolean;
|
|
57
|
-
}
|
|
58
|
-
export
|
|
56
|
+
}
|
|
57
|
+
export interface KakaoAppServiceTerms {
|
|
59
58
|
tag: string;
|
|
60
59
|
createdAt: number;
|
|
61
60
|
updatedAt: number;
|
|
62
|
-
}
|
|
63
|
-
export
|
|
61
|
+
}
|
|
62
|
+
export interface KakaoShippingAddressResult {
|
|
64
63
|
userId?: number;
|
|
65
64
|
needsAgreement?: boolean;
|
|
66
65
|
shippingAddresses: KakaoShippingAddress[];
|
|
67
|
-
}
|
|
68
|
-
export
|
|
66
|
+
}
|
|
67
|
+
export interface KakaoShippingAddress {
|
|
69
68
|
id: number;
|
|
70
69
|
name?: string;
|
|
71
70
|
isDefault: boolean;
|
|
@@ -78,8 +77,8 @@ export type KakaoShippingAddress = {
|
|
|
78
77
|
receiverPhoneNumber2?: string;
|
|
79
78
|
zoneNumber?: string;
|
|
80
79
|
zipCode?: string;
|
|
81
|
-
}
|
|
82
|
-
export
|
|
80
|
+
}
|
|
81
|
+
export interface KakaoUser {
|
|
83
82
|
id: number;
|
|
84
83
|
email: string;
|
|
85
84
|
name: string;
|
|
@@ -108,7 +107,14 @@ export type KakaoUser = {
|
|
|
108
107
|
profileImageNeedsAgreement?: boolean;
|
|
109
108
|
profileNicknameNeedsAgreement?: boolean;
|
|
110
109
|
legalBirthDateNeedsAgreement?: boolean;
|
|
111
|
-
|
|
110
|
+
connectedAt?: number;
|
|
111
|
+
synchedAt?: number;
|
|
112
|
+
}
|
|
113
|
+
export interface KakaoAccessTokenInfo {
|
|
114
|
+
id?: number;
|
|
115
|
+
appId: number;
|
|
116
|
+
expiresIn: number;
|
|
117
|
+
}
|
|
112
118
|
export function login({
|
|
113
119
|
serviceTerms,
|
|
114
120
|
prompts,
|
|
@@ -119,6 +125,16 @@ export function login({
|
|
|
119
125
|
prompts?: ('Loign' | 'Create' | 'Cert' | 'UnifyDaum' | 'SelectAccount')[];
|
|
120
126
|
scopes?: string[];
|
|
121
127
|
useKakaoAccountLogin?: boolean;
|
|
128
|
+
web?: {
|
|
129
|
+
redirectUri: string;
|
|
130
|
+
scope?: string[];
|
|
131
|
+
throughTalk?: boolean;
|
|
132
|
+
prompt?: ('login' | 'none' | 'create' | 'select_account')[];
|
|
133
|
+
loginHint?: string;
|
|
134
|
+
serviceTerms?: string[];
|
|
135
|
+
state?: string;
|
|
136
|
+
nonce?: string;
|
|
137
|
+
};
|
|
122
138
|
} = {}): Promise<KakaoLoginToken> {
|
|
123
139
|
kAssert(
|
|
124
140
|
!useKakaoAccountLogin ? !is.notEmptyArray(prompts) && !is.notEmptyArray(scopes) : true,
|
|
@@ -173,3 +189,44 @@ export function shippingAddresses(): Promise<KakaoShippingAddressResult> {
|
|
|
173
189
|
export function me(): Promise<KakaoUser> {
|
|
174
190
|
return Native.me();
|
|
175
191
|
}
|
|
192
|
+
|
|
193
|
+
export function getAccessToken(): Promise<KakaoAccessTokenInfo> {
|
|
194
|
+
return Native.getAccessToken();
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
198
|
+
export function setAccessTokenWeb(token: string) {}
|
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
200
|
+
export async function issueAccessTokenWithCodeWeb(params: {
|
|
201
|
+
redirectUri: string;
|
|
202
|
+
clientSecret?: string;
|
|
203
|
+
code: string;
|
|
204
|
+
}): Promise<{
|
|
205
|
+
tokenType: string;
|
|
206
|
+
accessToken: string;
|
|
207
|
+
idToken?: string;
|
|
208
|
+
expiresIn: number;
|
|
209
|
+
refreshToken: string;
|
|
210
|
+
refreshTokenExpiresIn: number;
|
|
211
|
+
scope?: string;
|
|
212
|
+
}> {
|
|
213
|
+
return {} as any;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const KakaoUser = {
|
|
217
|
+
login,
|
|
218
|
+
logout,
|
|
219
|
+
unlink,
|
|
220
|
+
isLogined,
|
|
221
|
+
isKakaoTalkLoginAvailable,
|
|
222
|
+
scopes,
|
|
223
|
+
revokeScopes,
|
|
224
|
+
serviceTerms,
|
|
225
|
+
shippingAddresses,
|
|
226
|
+
me,
|
|
227
|
+
getAccessToken,
|
|
228
|
+
setAccessTokenWeb,
|
|
229
|
+
issueAccessTokenWithCodeWeb,
|
|
230
|
+
};
|
|
231
|
+
export default KakaoUser;
|
|
232
|
+
export type KakaoUserAPI = typeof KakaoUser;
|
package/src/index.web.ts
ADDED
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { camelCaseObject, filterNonNullishKeys, is } from '@mj-studio/js-util';
|
|
2
|
+
import {
|
|
3
|
+
kCreateWebError,
|
|
4
|
+
kFetch,
|
|
5
|
+
kFetchFormUrlEncoded,
|
|
6
|
+
kGlobalStorage,
|
|
7
|
+
} from '@react-native-kakao/core';
|
|
8
|
+
import * as querystring from 'querystring';
|
|
9
|
+
|
|
10
|
+
import {
|
|
11
|
+
type KakaoLoginToken,
|
|
12
|
+
type KakaoScopeInfo,
|
|
13
|
+
type KakaoServiceTerms,
|
|
14
|
+
type KakaoShippingAddressResult,
|
|
15
|
+
type KakaoUser,
|
|
16
|
+
type KakaoUserAPI,
|
|
17
|
+
} from './index';
|
|
18
|
+
|
|
19
|
+
declare const Kakao: {
|
|
20
|
+
Auth: {
|
|
21
|
+
authorize: Function;
|
|
22
|
+
logout: Function;
|
|
23
|
+
setAccessToken: Function;
|
|
24
|
+
};
|
|
25
|
+
API: { request: Function };
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
function isoToUnix(value?: string | number) {
|
|
29
|
+
if (!is.string(value)) {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return Date.parse(value) / 1000;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const KakaoUser: KakaoUserAPI = {
|
|
37
|
+
getAccessToken: async () => {
|
|
38
|
+
try {
|
|
39
|
+
const { id, expires_in, app_id } = (
|
|
40
|
+
await kFetch<{
|
|
41
|
+
id: number;
|
|
42
|
+
expires_in: number;
|
|
43
|
+
app_id: number;
|
|
44
|
+
}>('https://kapi.kakao.com/v1/user/access_token_info', {
|
|
45
|
+
headers: {
|
|
46
|
+
...kGlobalStorage.headers,
|
|
47
|
+
},
|
|
48
|
+
})
|
|
49
|
+
).body;
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
id,
|
|
53
|
+
expiresIn: expires_in,
|
|
54
|
+
appId: app_id,
|
|
55
|
+
};
|
|
56
|
+
} catch (e: any) {
|
|
57
|
+
throw kCreateWebError(e);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
issueAccessTokenWithCodeWeb: async ({ clientSecret, code, redirectUri }) => {
|
|
61
|
+
try {
|
|
62
|
+
const res = await kFetchFormUrlEncoded<{
|
|
63
|
+
token_type: string;
|
|
64
|
+
access_token: string;
|
|
65
|
+
id_token?: string;
|
|
66
|
+
expires_in: number;
|
|
67
|
+
refresh_token: string;
|
|
68
|
+
refresh_token_expires_in: number;
|
|
69
|
+
scope?: string;
|
|
70
|
+
}>('https://kauth.kakao.com/oauth/token', {
|
|
71
|
+
method: 'POST',
|
|
72
|
+
body: filterNonNullishKeys({
|
|
73
|
+
grant_type: 'authorization_code',
|
|
74
|
+
client_id: kGlobalStorage.restApiKey,
|
|
75
|
+
redirect_uri: encodeURIComponent(redirectUri),
|
|
76
|
+
code,
|
|
77
|
+
client_secret: clientSecret,
|
|
78
|
+
}),
|
|
79
|
+
}).then((r) => r.body);
|
|
80
|
+
|
|
81
|
+
return camelCaseObject(res) as any;
|
|
82
|
+
} catch (e: any) {
|
|
83
|
+
throw kCreateWebError(e);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
setAccessTokenWeb: (token: string) => {
|
|
87
|
+
kGlobalStorage.accessToken = token;
|
|
88
|
+
|
|
89
|
+
return new Promise((r) => {
|
|
90
|
+
Kakao.Auth.setAccessToken(token);
|
|
91
|
+
r(42);
|
|
92
|
+
});
|
|
93
|
+
},
|
|
94
|
+
login: async (params): Promise<KakaoLoginToken> => {
|
|
95
|
+
const { loginHint, nonce, prompt, redirectUri, scope, state, throughTalk, serviceTerms } =
|
|
96
|
+
params?.web ?? {};
|
|
97
|
+
|
|
98
|
+
return Kakao.Auth.authorize(
|
|
99
|
+
filterNonNullishKeys({
|
|
100
|
+
loginHint,
|
|
101
|
+
nonce,
|
|
102
|
+
prompt: prompt?.join(','),
|
|
103
|
+
redirectUri,
|
|
104
|
+
scope: scope?.join(','),
|
|
105
|
+
serviceTerms: serviceTerms?.join(','),
|
|
106
|
+
state,
|
|
107
|
+
throughTalk,
|
|
108
|
+
}),
|
|
109
|
+
);
|
|
110
|
+
},
|
|
111
|
+
logout: () => Kakao.Auth.logout().catch(kCreateWebError),
|
|
112
|
+
isLogined: async (): Promise<boolean> => {
|
|
113
|
+
try {
|
|
114
|
+
const { appId } = await KakaoUser.getAccessToken();
|
|
115
|
+
|
|
116
|
+
return !!appId;
|
|
117
|
+
} catch (e) {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
isKakaoTalkLoginAvailable: async (): Promise<boolean> => false,
|
|
122
|
+
unlink: (): Promise<void> => Kakao.API.request({ url: '/v1/user/unlink' }).catch(kCreateWebError),
|
|
123
|
+
scopes: async (scopes?: string[]): Promise<KakaoScopeInfo[]> => {
|
|
124
|
+
try {
|
|
125
|
+
const response = await Kakao.API.request({
|
|
126
|
+
url: `/v2/user/scopes${scopes ? '?' + querystring.stringify({ scopes }) : ''}`,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
return camelCaseObject(response.scopes) as KakaoScopeInfo[];
|
|
130
|
+
} catch (e: any) {
|
|
131
|
+
throw kCreateWebError(e);
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
revokeScopes: async (scopes: string[]): Promise<void> => {
|
|
135
|
+
try {
|
|
136
|
+
await Kakao.API.request({
|
|
137
|
+
url: '/v2/user/revoke/scopes',
|
|
138
|
+
data: {
|
|
139
|
+
scopes,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
} catch (e: any) {
|
|
143
|
+
throw kCreateWebError(e);
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
serviceTerms: async (): Promise<KakaoServiceTerms[]> => {
|
|
147
|
+
try {
|
|
148
|
+
return camelCaseObject(
|
|
149
|
+
(
|
|
150
|
+
await Kakao.API.request({
|
|
151
|
+
url: '/v2/user/service_terms',
|
|
152
|
+
})
|
|
153
|
+
).service_terms.map((v) => ({
|
|
154
|
+
...v,
|
|
155
|
+
agreed_at: v.agreed_at ? isoToUnix(v.agreed_at) : null,
|
|
156
|
+
})),
|
|
157
|
+
) as KakaoServiceTerms[];
|
|
158
|
+
} catch (e: any) {
|
|
159
|
+
throw kCreateWebError(e);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
shippingAddresses: async (): Promise<KakaoShippingAddressResult> => {
|
|
163
|
+
try {
|
|
164
|
+
return camelCaseObject(
|
|
165
|
+
await Kakao.API.request({
|
|
166
|
+
url: '/v1/user/shipping_address',
|
|
167
|
+
}),
|
|
168
|
+
) as KakaoShippingAddressResult;
|
|
169
|
+
} catch (e: any) {
|
|
170
|
+
throw kCreateWebError(e);
|
|
171
|
+
}
|
|
172
|
+
},
|
|
173
|
+
me: async (): Promise<KakaoUser> => {
|
|
174
|
+
try {
|
|
175
|
+
const ret = camelCaseObject(await Kakao.API.request({ url: '/v2/user/me' })) as KakaoUser;
|
|
176
|
+
|
|
177
|
+
return {
|
|
178
|
+
...ret,
|
|
179
|
+
connectedAt: isoToUnix(ret.connectedAt),
|
|
180
|
+
synchedAt: isoToUnix(ret.synchedAt),
|
|
181
|
+
};
|
|
182
|
+
} catch (e: any) {
|
|
183
|
+
throw kCreateWebError(e);
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export const {
|
|
189
|
+
isKakaoTalkLoginAvailable,
|
|
190
|
+
isLogined,
|
|
191
|
+
login,
|
|
192
|
+
logout,
|
|
193
|
+
me,
|
|
194
|
+
revokeScopes,
|
|
195
|
+
scopes,
|
|
196
|
+
serviceTerms,
|
|
197
|
+
shippingAddresses,
|
|
198
|
+
unlink,
|
|
199
|
+
setAccessTokenWeb,
|
|
200
|
+
issueAccessTokenWithCodeWeb,
|
|
201
|
+
getAccessToken,
|
|
202
|
+
} = KakaoUser;
|
|
203
|
+
|
|
204
|
+
export default KakaoUser;
|
|
@@ -2,6 +2,7 @@ import type { TurboModule } from 'react-native';
|
|
|
2
2
|
import { TurboModuleRegistry } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import type {
|
|
5
|
+
KakaoAccessTokenInfo,
|
|
5
6
|
KakaoLoginToken,
|
|
6
7
|
KakaoScopeInfo,
|
|
7
8
|
KakaoServiceTerms,
|
|
@@ -25,6 +26,7 @@ export interface Spec extends TurboModule {
|
|
|
25
26
|
serviceTerms(): Promise<KakaoServiceTerms[]>;
|
|
26
27
|
shippingAddresses(): Promise<KakaoShippingAddressResult>;
|
|
27
28
|
me(): Promise<KakaoUser>;
|
|
29
|
+
getAccessToken(): Promise<KakaoAccessTokenInfo>;
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
export default TurboModuleRegistry.getEnforcing<Spec>('RNCKakaoUser');
|