flutter 로 하이브리드 앱을 구현하고있습니다.
먼저 앱키는:852196 입니다
flutter kakao sdk 를 이용한 카카오 로그인 방식이 두가지라는 걸 이해하고있습니다.
- 기본방식
- redirect 방식
저는 android 환경에서 1번의 기본방식으로 카카오 로그인을 성공했습니다.
ElevatedButton(
onPressed: () async {
print(await isKakaoTalkInstalled());
if (await isKakaoTalkInstalled() == true) {
try {
OAuthToken token =
await UserApi.instance.loginWithKakaoTalk();
print('카카오톡으로 로그인 성공 ${token.accessToken}');
} catch (error) {
print('카카오톡으로 로그인 실패 $error');
}
} else {
try {
OAuthToken token =
await UserApi.instance.loginWithKakaoAccount();
print('카카오계정으로 로그인 성공 ${token.accessToken}');
} catch (error) {
print('카카오계정으로 로그인 실패 $error');
}
}
},
child: Text('카카오톡으로 로그인'),
),
해당 코드는 kakao 디벨로퍼 공홈에 있는 flutter sdk 샘플 코드를 그대로 이용했습니다.
이렇게 했을때 안드로이드 환경에선 로그인이 완료되어 토큰 발급을 성공하였는데
flutter web 환경에선 아이디 비번 치고 2차 인증하고 동의화면 까지는 나오는데
동의 화면 후 관리자 설정이슈 (KOE006) 이 뜹니다.
이 오류가 web 환경에서 redirect url 을 입력하지 않아 생기는 오류라고 해서
web 플랫폼을 http://localhost/ 로 등록하였고,
카카오로그인 설정에서 redirect url 또한 http://localhost/ 와 http://localhost/oauth 로 설정하였습니다.
하지만 여전히 K0E006 이슈가 뜹니다.
flutter main 에 정상적으로 sdk init 도 시켜주었고
void main() {
WidgetsFlutterBinding.ensureInitialized();
setPathUrlStrategy(); //url 에 # 삭제
KakaoSdk.init(
nativeAppKey: '보안상 가립니다',
javaScriptAppKey: '보안상 가립니다',
);
runApp(const MyApp());
}
AndroidMainfest 쪽에도
<activity
android:name="com.kakao.sdk.flutter.AuthCodeCustomTabsActivity"
android:exported="true">
<intent-filter android:label="flutter_web_auth">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI, "kakao${YOUR_NATIVE_APP_KEY}://oauth" 형식 -->
<data android:scheme="보안상 가립니다" android:host="oauth"/>
</intent-filter>
</activity>
해당 설정을 해주었습니다.
flutter web에서 redirect 방식이 아닌 기본 방식으로 flutter kakao sdk 를 이용해서 로그인을 구현할 시 더 설정해야하는 부분이 있을까요?