안녕하세요. 토스 로그인 연동하려고 하는데, 웹뷰 프론트에서 appLogin()이 되지 않아 확인 요청드립니다.
한 번 성공 후, 안 되는데, 무엇 때문인지 어떻게 디버깅해야 할지 난감해 도움 요청 드립니다. 먼저, 테스트해 보려고 하기 코드처럼 작성해 두었는데, const { authorizationCode, referrer } = await appLogin(); 이곳에서 아예 콘솔 오류가 출력되며 더이상 진행되지 않는 상황입니다.
import { appLogin } from "@apps-in-toss/web-framework";
...
const login = useCallback(async () => {
try {
setLoading(true);
setError(null);
console.log("Starting login process...");
// 1. 토스 앱 로그인 호출
const { authorizationCode, referrer } = await appLogin();
console.log("Authorization Code:", authorizationCode);
console.log("Referrer:", referrer);
// 2. 인증 코드로 AccessToken 발급
const tokenResponse = await api.public.post<TokenResponse>(
"/auth/login",
{
authorizationCode,
referrer,
}
);
const accessTokenValue = tokenResponse?.accessToken;
const refreshTokenValue = tokenResponse?.refreshToken;
console.log("Access Token:", accessTokenValue);
console.log("Refresh Token:", refreshTokenValue);
if (!accessTokenValue) {
throw new Error("AccessToken을 받지 못했습니다");
}
setAccessToken(accessTokenValue);
if (refreshTokenValue) {
setRefreshToken(refreshTokenValue);
}
// 클라이언트에 토큰 설정
api.setToken(accessTokenValue);
// 3. 사용자 정보 조회
await getUserInfo();
} catch (err) {
const errorMessage =
err instanceof Error ? err.message : "로그인 중 오류가 발생했습니다";
setError(errorMessage);
console.error("Login error:", err);
} finally {
setLoading(false);
}
}, []);
처음 toss 앱 로그인 화면으로 넘어간 후엔, 로그인 화면이 따로 보이지 않았고, 현재는 아예 로그인 화면으로 넘어가지도 않고, 그냥 오류만 나는 상황입니다.
app scheme도 등록된 바와 같고, 개발 서버와 프론트 서버 둘 다 실행했습니다.
테스트앱 구동 시 yarn 4.x 버전이 필요하기에 yarn도 4.x으로 설정해 놓은 상황입니다.
사용 중인 버전 첨부합니다.
"dependencies": {
"@apps-in-toss/web-framework": "^1.2.1",
"@emotion/react": "11",
"@granite-js/plugin-router": "0.1.21",
"@toss/tds-colors": "^0.1.0",
"@toss/tds-mobile": "^2.1.2",
"@toss/tds-mobile-ait": "^2.1.2",
"next": "^15.5.2",
"react": "18",
"react-dom": "18"
},
