An open API service indexing awesome lists of open source software.

https://github.com/toss/toss-login-android-sdk

토스 로그인 Android SDK 를 위한 모노레포입니다.
https://github.com/toss/toss-login-android-sdk

Last synced: about 1 year ago
JSON representation

토스 로그인 Android SDK 를 위한 모노레포입니다.

Awesome Lists containing this project

README

          

# 토스 로그인 android-sdk
토스 로그인 Android SDK 를 위한 모노레포입니다.

## 설치 하기

### 요구 사항
토스 로그인 Android SDK를 설치하기 전에 최소 요구 사항을 확인하세요.
- Android 6.0 (API 23) 이상

### 라이브러리 다운로드

jitpack 에 배포되어 있고, 그에 따른 설정이 필요합니다.

1. root build.gradle 에 다음을 추가합니다.
```groovy
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```

2. 사용할 앱 build.gradle dependencies 안에 다음을 추가합니다.
```groovy

dependencies {
implementation 'com.github.toss:toss-android-sdk:1.0.3'
}
```

## 사전 설정

### Redirect URI 설정
토스 로그인 기능을 구현하기 위해서는 리다이렉션(Redirection)을 통해 인가 코드를 받아야 합니다. 이를 위해 `AndroidManifest.xml`에 액티비티(Activity) 설정이 필요합니다. 아래 예제를 참고합니다.
```xml





```
새로운 액티비티를 추가하고, name 요소의 값은 `com.vivarepublica.loginsdk.activity.AuthCodeHandlerActivity`로 입력합니다.
Android 12(API 31) 이상을 타깃으로 하는 앱인 경우, exported 요소를 반드시 "true"로 선언해야 합니다.
해당 액티비티 하위에 `` 요소를 추가하고, host와 scheme 요소 값으로 토스 로그인을 위한 Redirect URI를 설정합니다.
scheme 속성의 값은 `toss{NATIVE_APP_KEY}` 형식으로 입력합니다. 예를 들어 앱 키가 "123456789"라면 "toss123456789"를 입력합니다.

### 토스앱 설치 여부 확인을 위해서
targetSdkVersion 가 30(Android 11) 이상인 앱에서 토스앱 설치 여부를 확인하기 위해서는
`AndroidManifest.xml`에 다음과 같이 `` 태그를 추가해야 합니다.

```xml



```

## 시작하기

### SDK 초기화

네이티브 앱 키로 초기화를 해야합니다.
`Application` 을 상속한 클래스를 사용하고 있다면 다음과 같이 초기화할 수 있습니다.
```kotlin
class TossLoginApplication : Application() {
override fun onCreate() {
super.onCreate()
// 다른 초기화 코드들

// Toss SDK 초기화
TossSdk.init(this, "{NATIVE_APP_KEY}")
}
}
```
만약 Application 클래스에서 초기화를 하셨다면,
`AndroidManifest.xml`의 application 클래스에도 Toss SDK 초기화를 수행한 클래스의 이름을 설정해야 합니다.
위 예제에서는 `TossLoginApplication` 클래스에서 초기화를 했으므로 아래와 같이 동일한 이름을 설정에 추가합니다.

```xml

android:name=".TossLoginApplication"
...
>
```

### 로그인 요청

- 토스로 로그인을 하기 위해선 `TossLoginController.login(context: Context, policy : String?, onResult: (TossLoginResult) -> Unit)` 함수를 호출하세요
- policy 의 default 는 null 입니다 -> null 이면 policy 가 설정되지 않습니다.
- `isLoginAvailable(context: Context)` 함수로 토스앱 실행 가능 여부를 확인할 수 있어요.

```kotlin

if (TossLoginController.isLoginAvailable(context).not()) {
return TossLoginController.moveToPlaystore(context)
}

TossLoginController.login(context, "CHANGE_PERSONAL_INFO") { resunt ->
when (result) {
is TossLoginResult.Success -> {
// authCode 를 통해 accessToken을 발급받으세요.
val accessToken = result.authCode
}
is TossLoginResult.Error -> {
Log.e("TossLogin", "error: ${result.error}")
}
is TossLoginResult.Cancel -> {
// 사용자가 취소했어요.
Log.e("TossLogin", "cancel")
}
}
}
```