@@ -4,6 +4,7 @@ import android.content.Context
4
4
import android.content.Intent
5
5
import android.net.Uri
6
6
import com.vivarepublica.loginsdk.foundation.*
7
+ import com.vivarepublica.loginsdk.model.TossLoginPolicy
7
8
import com.vivarepublica.loginsdk.model.TossLoginResult
8
9
import kotlinx.coroutines.*
9
10
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -22,9 +23,13 @@ object TossLoginController {
22
23
}
23
24
24
25
@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
+ ) {
26
31
GlobalScope .launch {
27
- val loginUrl = createLoginUrl(context)
32
+ val loginUrl = createLoginUrl(context, policy )
28
33
29
34
val intent = Intent (Intent .ACTION_VIEW , Uri .parse(loginUrl))
30
35
context.startActivity(intent)
@@ -36,7 +41,10 @@ object TossLoginController {
36
41
}
37
42
}
38
43
39
- private fun createLoginUrl (context : Context ): String {
44
+ private fun createLoginUrl (
45
+ context : Context ,
46
+ policy : TossLoginPolicy ? = null
47
+ ): String {
40
48
41
49
fun createRedirectUrlPrefix (): String {
42
50
val appKey = TossSdk .appKey ? : throw NotExistAppKeyError ()
@@ -53,6 +61,11 @@ object TossLoginController {
53
61
.appendQueryParameter(" device" , " android-${Constants .OS_VERSION } " )
54
62
.appendQueryParameter(" version" , appVersion(context))
55
63
.appendQueryParameter(" origin" , packageName(context))
64
+ .apply {
65
+ policy?.let {
66
+ appendQueryParameter(" oauth_policy" , it.paramString)
67
+ }
68
+ }
56
69
.build()
57
70
58
71
return loginUrl.toString()
0 commit comments