Skip to content

Commit a2b64db

Browse files
committed
add toss login policy
1 parent 5ea1d8a commit a2b64db

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

login-sdk/src/main/java/com/vivarepublica/loginsdk/TossLoginController.kt

+16-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.content.Context
44
import android.content.Intent
55
import android.net.Uri
66
import com.vivarepublica.loginsdk.foundation.*
7+
import com.vivarepublica.loginsdk.model.TossLoginPolicy
78
import com.vivarepublica.loginsdk.model.TossLoginResult
89
import kotlinx.coroutines.*
910
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -22,9 +23,13 @@ object TossLoginController {
2223
}
2324

2425
@OptIn(DelicateCoroutinesApi::class)
25-
fun login(context: Context, onResult: (TossLoginResult) -> Unit) {
26+
fun login(
27+
context: Context,
28+
policy: TossLoginPolicy? = null,
29+
onResult: (TossLoginResult) -> Unit
30+
) {
2631
GlobalScope.launch {
27-
val loginUrl = createLoginUrl(context)
32+
val loginUrl = createLoginUrl(context, policy)
2833

2934
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(loginUrl))
3035
context.startActivity(intent)
@@ -36,7 +41,10 @@ object TossLoginController {
3641
}
3742
}
3843

39-
private fun createLoginUrl(context: Context): String {
44+
private fun createLoginUrl(
45+
context: Context,
46+
policy: TossLoginPolicy? = null
47+
): String {
4048

4149
fun createRedirectUrlPrefix(): String {
4250
val appKey = TossSdk.appKey ?: throw NotExistAppKeyError()
@@ -53,6 +61,11 @@ object TossLoginController {
5361
.appendQueryParameter("device", "android-${Constants.OS_VERSION}")
5462
.appendQueryParameter("version", appVersion(context))
5563
.appendQueryParameter("origin", packageName(context))
64+
.apply {
65+
policy?.let {
66+
appendQueryParameter("oauth_policy", it.paramString)
67+
}
68+
}
5669
.build()
5770

5871
return loginUrl.toString()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.vivarepublica.loginsdk.model
2+
3+
enum class TossLoginPolicy(val paramString: String) {
4+
5+
JOIN("JOIN"),
6+
CHANGE_PERSONAL_INFO("CHANGE_PERSONAL_INFO")
7+
}

0 commit comments

Comments
 (0)