{"id":19936309,"url":"https://github.com/toss/toss-login-android-sdk","last_synced_at":"2025-05-03T13:30:36.143Z","repository":{"id":193523870,"uuid":"688820496","full_name":"toss/toss-login-android-sdk","owner":"toss","description":"토스 로그인 Android SDK 를 위한 모노레포입니다.","archived":false,"fork":false,"pushed_at":"2024-03-14T07:53:54.000Z","size":191,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-03-14T08:50:04.315Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/toss.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-09-08T07:12:50.000Z","updated_at":"2024-03-14T07:54:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"c407c5b8-020d-41ae-8ef9-907119e34d93","html_url":"https://github.com/toss/toss-login-android-sdk","commit_stats":null,"previous_names":["toss/toss-android-sdk"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toss%2Ftoss-login-android-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toss%2Ftoss-login-android-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toss%2Ftoss-login-android-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/toss%2Ftoss-login-android-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/toss","download_url":"https://codeload.github.com/toss/toss-login-android-sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224362241,"owners_count":17298669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T23:25:09.798Z","updated_at":"2024-11-12T23:25:10.341Z","avatar_url":"https://github.com/toss.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 토스 로그인 android-sdk\n토스 로그인 Android SDK 를 위한 모노레포입니다.\n\n## 설치 하기\n\n### 요구 사항\n토스 로그인 Android SDK를 설치하기 전에 최소 요구 사항을 확인하세요.\n- Android 6.0 (API 23) 이상\n\n### 라이브러리 다운로드\n\njitpack 에 배포되어 있고, 그에 따른 설정이 필요합니다.\n\n\n1. root build.gradle 에 다음을 추가합니다.\n```groovy\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n    }\n}\n```\n\n2. 사용할 앱 build.gradle dependencies 안에 다음을 추가합니다.\n```groovy\n\ndependencies {\n    implementation 'com.github.toss:toss-android-sdk:1.0.3'\n}\n```\n\n## 사전 설정\n\n### Redirect URI 설정\n토스 로그인 기능을 구현하기 위해서는 리다이렉션(Redirection)을 통해 인가 코드를 받아야 합니다. 이를 위해 `AndroidManifest.xml`에 액티비티(Activity) 설정이 필요합니다. 아래 예제를 참고합니다.\n```xml\n\u003cactivity \n    android:name=\"com.vivarepublica.loginsdk.activity.TossAuthCodeHandlerActivity\"\n    android:exported=\"true\"\u003e\n\n    \u003cintent-filter android:autoVerify=\"true\"\u003e\n        \u003caction android:name=\"android.intent.action.VIEW\" /\u003e\n\n        \u003ccategory android:name=\"android.intent.category.BROWSABLE\" /\u003e\n        \u003ccategory android:name=\"android.intent.category.DEFAULT\" /\u003e\n\n        \u003c!-- Redirect URI: \"toss{NATIVE_APP_KEY}://oauth\" --\u003e\n        \u003cdata\n            android:host=\"oauth\"\n            android:scheme=\"toss${NATIVE_APP_KEY}\" /\u003e\n    \u003c/intent-filter\u003e\n\n\u003c/activity\u003e\n```\n새로운 액티비티를 추가하고, name 요소의 값은 `com.vivarepublica.loginsdk.activity.AuthCodeHandlerActivity`로 입력합니다. \nAndroid 12(API 31) 이상을 타깃으로 하는 앱인 경우, exported 요소를 반드시 \"true\"로 선언해야 합니다.\n해당 액티비티 하위에 `\u003cintent-filter\u003e` 요소를 추가하고, host와 scheme 요소 값으로 토스 로그인을 위한 Redirect URI를 설정합니다. \nscheme 속성의 값은 `toss{NATIVE_APP_KEY}` 형식으로 입력합니다. 예를 들어 앱 키가 \"123456789\"라면 \"toss123456789\"를 입력합니다.\n\n\n### 토스앱 설치 여부 확인을 위해서\ntargetSdkVersion 가 30(Android 11) 이상인 앱에서 토스앱 설치 여부를 확인하기 위해서는 \n`AndroidManifest.xml`에 다음과 같이 `\u003cqueries\u003e` 태그를 추가해야 합니다.\n\n```xml\n\n\u003cmanifest package=\"...\"\u003e\n    \u003cqueries\u003e\n        \u003cpackage android:name=\"viva.republica.toss\" /\u003e\n    \u003c/queries\u003e\n\u003c/manifest\u003e\n\n```\n\n## 시작하기\n\n### SDK 초기화\n\n네이티브 앱 키로 초기화를 해야합니다.\n`Application` 을 상속한 클래스를 사용하고 있다면 다음과 같이 초기화할 수 있습니다.\n```kotlin\nclass TossLoginApplication : Application() {\n  override fun onCreate() {\n    super.onCreate()\n    // 다른 초기화 코드들\n\n    // Toss SDK 초기화\n    TossSdk.init(this, \"{NATIVE_APP_KEY}\")\n  }\n}\n```\n만약 Application 클래스에서 초기화를 하셨다면,\n`AndroidManifest.xml`의 application 클래스에도 Toss SDK 초기화를 수행한 클래스의 이름을 설정해야 합니다. \n위 예제에서는 `TossLoginApplication` 클래스에서 초기화를 했으므로 아래와 같이 동일한 이름을 설정에 추가합니다.\n\n```xml\n\u003capplication\n    \u003c!-- android:name 설정 --\u003e\n    android:name=\".TossLoginApplication\"\n    ...\n\u003e\n```\n\n### 로그인 요청\n\n- 토스로 로그인을 하기 위해선 `TossLoginController.login(context: Context, policy : String?, onResult: (TossLoginResult) -\u003e Unit)` 함수를 호출하세요\n  - policy 의 default 는 null 입니다 -\u003e null 이면 policy 가 설정되지 않습니다.\n- `isLoginAvailable(context: Context)` 함수로 토스앱 실행 가능 여부를 확인할 수 있어요.\n\n\n```kotlin\n\nif (TossLoginController.isLoginAvailable(context).not()) {\n    return TossLoginController.moveToPlaystore(context)\n}\n\nTossLoginController.login(context, \"CHANGE_PERSONAL_INFO\") { resunt -\u003e \n    when (result) {\n        is TossLoginResult.Success -\u003e {\n            // authCode 를 통해 accessToken을 발급받으세요.\n            val accessToken = result.authCode\n        }\n        is TossLoginResult.Error -\u003e {\n            Log.e(\"TossLogin\", \"error: ${result.error}\")\n        }\n        is TossLoginResult.Cancel -\u003e {\n            // 사용자가 취소했어요.\n            Log.e(\"TossLogin\", \"cancel\")\n        }\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoss%2Ftoss-login-android-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftoss%2Ftoss-login-android-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftoss%2Ftoss-login-android-sdk/lists"}