사용자 인증 방식
1) OAuth
- 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜
- 외부 서비스에서도 인증 가능하게 하고, 그 서비스의 api를 이용하게 해주는 역할
- 인증 정보를 따로 남길 필요 없이 인증 토큰만으로도 서비스의 사용이 가능하단 장점
- 보안에는 취약하다는 단점
- 소셜 로그인 시 많이 사용
2) Cookie
- 클라이언트가 어떤 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해
클라이언트의 브라우저에 설치되는 작은 기록 정보 파일 - 쿠키를 통해 클라이언트 로그인 상태를 유지시키는 역할
- 쿠키가 유출, 조작될 가능성이 있다는 단점
3) JWT (Json Web Token)
- 인증에 필요한 정보들을 암호화한 토큰
- 토큰 기반으로 다른 로그인 시스템에 접근 및 권한 공유가 가능
- 인증 정보에 대한 별도의 저장소가 필요없다는 장점 ??
- 토큰이 한 번 발급되면 유효기간이 만료될때까지 계속 사용이 가능
- 모바일 어플리케이션 환경에서 잘 동작한다는 장점
JWT는 서비스에 로그인 시 서버에서 토큰 발급
이것을 SharedPreference로 저장해두고 로그인 상태 유지 가능
OAuth 2.0
간편 로그인 시 사용
https://developer.android.com/training/id-auth/authenticate?hl=ko
OAuth2 서비스 인증 | Android 개발자 | Android Developers
온라인 서비스에 안전하게 액세스하려면 사용자는 신원을 증명하여 서비스에 인증해야 합니다. 타사 서비스에 액세스하는 애플리케이션에서 보안 문제는 훨씬 더 복잡합니다. …
developer.android.com
OAuth 2.0 동작 방식
https://blog.naver.com/mds_datasecurity/222182943542
OAuth 2.0 동작 방식의 이해
OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토...
blog.naver.com
카카오 로그인 API
카카오 로그인은 카카오계정으로 다양한 서비스에 로그인할 수 있도록 하는 OAuth 2.0 기반의 소셜 로그인 서비스
카카오 로그인 API 사용
▽ 참고 자료
Kakao Developers에서의 설정
1) 앱 등록
2) 플랫폼 등록
3) 카카오 로그인 활성화
4) 동의 항목 설정
사용자가 서비스에 카카오톡으로 로그인할때 카카오톡에서 받아올 정보들을 설정해줌
동의 목적도 반드시 기술
나는 이런 식으로 설정해줬음
동의화면 미리보기를 통해 프리뷰를 볼 수 있음
Android 모듈 설정
https://developers.kakao.com/docs/latest/ko/getting-started/sdk-android#apply-sdk
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
1) gradle 설정
build.gradle에 allprojects를 사용해서 android sdk 레파지토리를 설정하려고 하니까
최신 버전에선 불가능하다고해서 settings.gradle에 설정해줌
2) 필요한 모듈 설정
dependencies {
implementation "com.kakao.sdk:v2-user:2.10.0" // 카카오 로그인
implementation "com.kakao.sdk:v2-talk:2.10.0" // 친구, 메시지(카카오톡)
implementation "com.kakao.sdk:v2-story:2.10.0" // 카카오스토리
implementation "com.kakao.sdk:v2-link:2.10.0" // 메시지(카카오톡 공유)
implementation "com.kakao.sdk:v2-navi:2.10.0" // 카카오내비
implementation "com.kakao.sdk:v2-friend:2.10.0" // 카카오톡 소셜 피커, 리소스 번들 파일 포함
}
build.gradle에 필요한 모듈만 설정해주면 됨
나는 일단 전부 넣었음
3) 인터넷 사용 권한 설정
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
카카오 api를 통한 http 요청이 올바르게 되도록 해줌
4) Java 8 사용 설정
build.gradle
// Java 8 사용을 위한 build.gradle 설정
android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
보통 1.8로 설정되어있어서 따로 확인만 해주면 됨
5) 프로가드 설정
나는 테스트용이라 그냥 넘어감
초기화하기
https://developers.kakao.com/docs/latest/ko/getting-started/sdk-android#init
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com
설치 및 설정 후 Android sdk를 사용하기 위해선 가장 먼저 네이티브 앱 키로 초기화를 해줘야 함
class GlobalApplication : Application() {
override fun onCreate() {
super.onCreate()
// 다른 초기화 코드들
// Kakao SDK 초기화
KakaoSdk.init(this, "{NATIVE_APP_KEY}")
}
}
공식 문서에선 위와 같이 Application 클래스를 하나 생성해서 onCreate 함수 내에 초기화를 하도록 했는데
가장 먼저 실행되는 액티비티의 onCreate에서 해줘도 됨
NATIVE_APP_KEY 부분은 어플리케이션을 등록하고 받은 네이티브 앱 키를 입력해주면 됨
클래스 생성 후 AndroidManifest.xml에 name 설정해줌
키 해시 등록하기
개발시엔 디버그 키 해시가 필요하고, 배포할땐 릴리즈 키 해시가 필요함
디버그 키 해시의 경우 개발자가 사용하는 컴퓨터, 노트북마다 키 해시를 생성해 등록해서 사용해줘야 함
터미널을 이용
윈도우의 경우 아래 코드 입력
keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64
실행 후 나온 키 값 복사해서 내 애플리케이션 플랫폼의 키해시 값에 추가해주면 됨
'Native App > 👽Android' 카테고리의 다른 글
web Crawling - Jsoup (0) | 2022.06.27 |
---|---|
kakao login api 사용 - 2 (0) | 2022.06.19 |
#02 SharedPreferences (0) | 2022.06.16 |
#01 Coroutine (0) | 2022.06.04 |
우분투 환경에 안드로이드 스튜디오 설치 (0) | 2022.01.24 |
댓글