
공식 문서에서 구현방법을 알려주고 있다.
<script type="text/javascript" src="https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js"/>
export default const loginButton = () => {
useEffect(() => {
AppleID.auth.init({
clientId : '[CLIENT_ID]', //애플 개발자 설정에서 만든 app id
scope : "name email",
redirectURI : '[REDIRECT_URI]', //애플 개발자 설정에서 만든 앱의 로그인 redirect uri
state : '[STATE]', //CSRF 공격 방지를 위한 임의의 문자열(값을 주지않는경우 작동하지 않음)
nonce : '[NONCE]', //리플레이 공격을 방지하기 위한 임의의 문자열(값을 주지 않아도 작동함)
usePopup : true //false인경우 post요청이 들어가기 때문에 반드시 true로 설정해야 함
});
} ,[]);
const onAppleLogin = async () => {
try {
const data = await AppleID.auth.signIn();
const {
authorization: { code, id_token, state },
user: { email, name: { firstName, lastName} }
} = data;
/*
로그인 관련 처리 수행
*/
catch(error) {
console.dir(error);
}
}
return<>
<button onClick={onAppleLogin}>Apple Login</button>
</>
}
location.href를 사용해 리다이렉트를 시키는 방법은 정적 배포만으로는 구현하기 어렵다./login으로 리다이렉트시키며, code와 id_token을 제공하지않는다