일단 유니티와 aws cognito로 구글 로그인을 설정하는 방법을 설명해준 유투브를 참고해서 쭉 따라해보았다.
참고한 유투브 링크
유투브의 description에 이분이 만든 샘플 씬도 있으니 샘플 씬으로 테스트 해보면 좋을 것 같다.
코드를 보니 cognito에서 설정한 login URL을 열고 들어가서
로그인이 되면 redirect uri로 데이터를 보내주는데
redirect uri를 딥링크로 설정하여 앱이 열리도록 하는 방식이였다.
그리고 토큰은 캐시 메모리에 저장해두고 이 사람이 처음왔는지 왔던 사람인지
구분할 수 있도록 한다.
이 사람이 올린 샘플 코드를 보면 로그인이 실패하면 오류를 띄우고 성공하면 데이터를 캐시에 저장하는것을 볼 수 있다.
영상에서는 IOS빌드만 설명을 해줘서
딥링크를 설정하는데 잘 몰라서 시간이 오래걸렸다.
안드로이드는
Assets/Plugins/Android 폴더에
AndroidManifest.xml파일을 만들고 그 안에 밑의 코드를 넣는다
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<application>
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="unitydl" android:host="mylink" />
</intent-filter>
</activity>
</application>
</manifest>
test.html파일을 하나 만들어서 테스트한다.
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
</head>
<body >
<h1>My Deep Link Test page</h1>
<p><a href="unitydl://mylink">Launch</a></p>
<p><a href="unitydl://mylink?parameter">Launch with Parameter</a></p>
</body>
</html>
빌드하고
테스트 페이지애서 Launch버튼을 누르면 앱이 열리게 된다.
이제 코그니토의 redirect uri에 unitydl://mylink를 넣어주면 로그인 했을 때 앱이 열린다.
영상을 다 따라했는데도 로그인이 되지 않는다면
cognito에서 client secret을 설정해주지 않았는지 확인해본다.
만약 설정해 주었다면 맨 위의 사진에 나온 코드에서
이런식으로 client_secret을 같이 넣어주어야 작동한다.