문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.
개발환경은 프론트는 리액트 네이티비브 엑스포 이고 백엔드는 스프링부트입니다.,
앱ID는1068884 입니다.
인가 코드랑 접근 코드를 콘솔에 찍어봤을때는 잘 출력이 되는데 여기서 리다이렉트 가 안되서 그런건지 궁금합니다… 아니면 어디서 따로 구현을 해야지 cannot get / oauth/kakao/callback
이런걸 안뜨고 로그인에 성공을 시킬수 있는지 궁금합니다…
const KaKaoLoginPage = () => {
function KakaoLoginWebView (data) {
const exp = "code=";
var condition = data.indexOf(exp);
if (condition != -1) {
var authorize_code = data.substring(condition + exp.length);
console.log(authorize_code);
requestToken(authorize_code);
};
}
const requestToken = async (authorize_code) => {
var AccessToken = "none";
axios ({
method: 'post',
url:'https://kauth.kakao.com/oauth/token',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
},
data: qs.stringify({
grant_type: 'authorization_code',
client_id: REST_API_KEY,
redirect_uri: REDIRECT_URI, // 리다이렉션 URI 설정
code: authorize_code,
}),
}).then((response) =>{
AccessToken = response.data.access_token;
console.log('Success : ', AccessToken);
// saveAccessTokenToBackend(AccessToken);
// 카카오에서 받은 인가 코드를 전송
sendAuthorizationCodeToBackend(AccessToken);
storeData(AccessToken)
}).catch(function(error){
console.log('error', error);
})
};
const sendAuthorizationCodeToBackend = async (authorizeCode) => {
const sendAuthorizationCode = 'http://localhost:8082/getKakaoAccessToken';
try {
const response = await axios.post(sendAuthorizationCode, { authorizeCode });
console.log('Successfully sent authorization code to backend:', response.data);
} catch (error) {
console.error('Error sending authorization code to backend:', error);
}
};
const storeData = async(returnValue) =>{
try{
await AsyncStorage.setItem('AccessToken', returnValue);
}catch(error){
}
}
return (
<View style={Styles.container}>
<WebView
style={{ flex: 1 }}
originWhitelist={['*']}
scalesPageToFit={false}
source={{
uri: `https://kauth.kakao.com/oauth/authorize?response_type=code&client_id=${REST_API_KEY}&redirect_uri=${REDIRECT_URI}`,
}}
injectedJavaScript={INJECTED_JAVASCRIPT}
javaScriptEnabled
onMessage={event => { KakaoLoginWebView(event.nativeEvent["url"]); }}
/>
</View>
)
}
export default KaKaoLoginPage;
const Styles = StyleSheet.create({
container: {
flex: 1,
marginTop: 24,
backgroundColor: '#fff',
},
});