웹프로그래밍

Global It Leader!!


그누보드


 
 

애플 로그인(Sign in with apple) PHP로 구현하기 1편

페이지 정보

작성자 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 4,578회 작성일 21-08-09 15:39

본문

애플 스토어에 앱을 출시하려는데 거절을 당했다.


이유는 "애플 로그인" 기능이 없어서 그렇단다. 


지금은 네이버와 카카오 로그인만 가능하도록 되어 있는데 애플 로그인 기능이 없으면 정책상 등록이 불가능 하단다.


참고로 앱에 SNS 로그인 기능이 없으면 애플 로그인이 필수 사항은 아니었습니다.


개발자 등록할때 부터 돈 내라고 하더니 그것도 1년마다 꼬박꼬박 미화 99$를...


알면 알수록 애플은 까칠하다. 특별나 보이고 싶어 안달이 난듯한 느낌마져 든다.


안드로이드 앱은 내손으로 만들고 심사받고 출시까지 가능한데....


IOS 앱은 맥북이 없어 만드는것도 심사 신청도 불가능하다. 그래서 X몽을 통해 개발자 섭외해서 등록까지 의뢰한다.


이번에는 애플 로그인이 발목을 잡는다. 그래서 아들 아이패드와 아이폰을 동원해서 개발을 시작했다.


폭풍 검색을 통해 문서를 찾아 봤는데 공개된 소스나 문서가 일반 개발자가 올려둔 게시글 몇개를 제외하고는 없다.


특히 놀라운 사실은 애플 개발자 페이지에 들어가 보면 샘플 소스가 거의 없다는 사실이다. 제가 못찾은 거라구요? ㅎㅎ


몇군데서 샘플 소스를 가져와 실행하는데 또 문제가 발생했다. 소스에 사용된 함수가 php 5.2 이상에서 지원하는 것이라는 사실이다.


그래서 고민에 고민을 거듭하다가 서버 업그레이드를 하기로 결심했다. 


운영중인 서버고 홈페이지가 20개가 넘기때문에 임시서버로 일단 서버를 셋팅하고 본 서버의 자료를 옮겨서 테스트해 보고 본 서버에 적용하기로 하였다.


오래된 홈페이지가 몇군데 있다보니 625는 난리도 아니었다. 1달여 지나는 동안 서버 업그레이드에 보름이상 투자한듯하다.


---------------> 거두 절미 <--------------------


애플 개발자로 등록되어 있다는 가정하에 설명드립니다.


1) https://developer.apple.com/account/resources/identifiers/list에 접속합니다.


로그인 창이 뜨고 로그인을 성공하면 바로 해당 메뉴로 이동합니다.


2) 다음 순서는 APP ID를 추가하기 위한 과정입니다. 즉, Team ID 키를 발급하는 과정이지요.

0f70ef6c72aa893ca2251da299ac03ef_1628491410_41.png
 


0f70ef6c72aa893ca2251da299ac03ef_1628491410_47.png
 

0f70ef6c72aa893ca2251da299ac03ef_1628491410_55.png

 

Description은 APP IDs를 설명하기 위한 키워드고 앱 이름을 영문으로 적으면 되겠습니다. Bundle ID도 로그인 작업에 영향을 주지는 않습니다.

통상 도메인을 그대로 적으시면 되겠습니다. 그래야 어떤 홈페이지에 로그인 작업을 위해 발급했는지 알기 쉬울테니 말이죠.


그리고 하단으로 내려 로그인 서비스를 활성화 하기 위해 "Sign in with Apple" 체크하고 "Edit"버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628491410_52.jpg

 

Endpoint URL을 지정하실 분은 입력하고 "Save" 버튼을 클릭하시고 아니면 그냥 "Save"버튼을 클릭하면 되겟습니다.

0f70ef6c72aa893ca2251da299ac03ef_1628491410_6.png
 

"Save" 버튼을 클릭하면 창이 닫히고 "Continue" 버튼을 클릭하면 

드디어 첫번째 키인 Team ID가 생성되었습니니다. 꼭 메모해 두세요.

"Register" 버튼을 클릭하면 APP IDs 작업이 완료됩니다.


0f70ef6c72aa893ca2251da299ac03ef_1628491410_65.jpg
 

0f70ef6c72aa893ca2251da299ac03ef_1628491410_69.jpg
 

이제 두번째 키인 Service ID 즉, Bundle ID(ClientId)를 생성하는 순서입니다. APP IDs 리스트 오른쪽에 APP IDs를 클릭하여 "Services IDs"를 선택합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628491410_72.jpg
Sevices ID를 추가하기 위해 "+" 버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628491410_75.jpg
 

0f70ef6c72aa893ca2251da299ac03ef_1628491410_79.jpg
 

Description은 Service ID를 설명하기 위한 키워드이며 identifier는 App ID identifier와 같으면 안되니까 반대로 적으면 되겠습니다.ㅎㅎ


0f70ef6c72aa893ca2251da299ac03ef_1628492218_74.jpg
0f70ef6c72aa893ca2251da299ac03ef_1628492218_8.jpg
Register 버튼을 클릭하면 목록이 표시되는데 test를 클릭하여 환경을 설정하도록 하겠습니다.

 

0f70ef6c72aa893ca2251da299ac03ef_1628497154_9.jpg
 

Sign in with Apple를 체크하고 "Configure" 버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628497154_98.jpg
 

새창이 뜨는데 Primary App ID는 새로 생성한 Service ID를 선택하고

Domain에는 애플 로그인 서비스를 실행할 도메인을

Return URLs에는 애플 회원 정보를 읽어와서 최종 처리할 URL을 적으시면 되겠습니다.

여러개의 도메인을 등록하고 싶으면 콤마(,)로 구분해서 열거하면 됩니다.


(중요) 대문자는 절대 쓰지마세요. 제가 대문자 한글자 때문에 하루를 날렸습니다.ㅠㅠ


0f70ef6c72aa893ca2251da299ac03ef_1628497155_04.jpg
0f70ef6c72aa893ca2251da299ac03ef_1628497155_08.jpg
 

0f70ef6c72aa893ca2251da299ac03ef_1628497155_13.jpg
 


0f70ef6c72aa893ca2251da299ac03ef_1628497155_17.jpg
 

Service ID가 생성되었습니다. 목록에서 test 옆에 보이는 "kr.co.test.bundle"이 바로 2번째 필수키인 ClientId입니다. 꼭 메모해 두세요.

참고로 어떤 분들은 App IDs에서 목록에서 test를 클릭했을때 보이는 Bundle ID가 ClientId라고 설명하는데 경험상 아니었습니다.

목록 우측 상단에 Service IDs를 클릭했을때 표시되는 목록 오른쪽에 있는 IDENTIFIER에 보이는 키가 바로 ClientId(Bundle ID)입니다.


0f70ef6c72aa893ca2251da299ac03ef_1628492218_83.jpg
 



마지막으로 키를 생성해 보겠습니다. 바로 사용자 정보를 읽어 오기위한 비밀열쇠를 발급 받는과정입니다.

왼쪽 메뉴에서 Keys를 클릭하고 "+" 버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628492218_86.jpg
Key name은 아무거나 입력하면 되고 하단에 "Sign in with Apple" 체크하고 "Configure" 버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628492218_92.jpg
 

(중요) 여기서 위에서 발급해둔 APP ID를 선택해 주면 됩니다. 바로 "test"지요~ 그리고 "Save" 버튼을 클릭합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628492218_97.jpg
"Save"버튼을 클릭하면 창이 닫히는데 "Continue" 버튼을 클릭하면 됩니다. 그리고 등록을 위해 "Register" 버튼을 클릭하세요~


0f70ef6c72aa893ca2251da299ac03ef_1628493432_32.jpg
 

3번째 필수 키인 Key ID가 발급되었습니다. 또한 인증키 파일을 다운로드 받아서 잘 보관해야합니다. 

왜냐하면 두번 다운 받을 수 없기 때문입니다. 만약 분실했다면 Key를 삭제하고 다시 발급 받아야 합니다.

나중에 로그인 프로그램 작업시에 해당 키 파일의 내용이 필요합니다.


0f70ef6c72aa893ca2251da299ac03ef_1628493299_19.jpg 

0f70ef6c72aa893ca2251da299ac03ef_1628492219_14.jpg
 

최종 버튼인 "Done"을 클릭하면 필수키 발급을 위한 대단원의 막을 내립니다. 수고하셨습니다.


0f70ef6c72aa893ca2251da299ac03ef_1628492219_18.jpg
 

4개의 필수키에 대해 정리하면 다음과 같습니다.


1. APP IDs 작업에서 Team ID 키를 발급 받았습니다.

2 . Services IDs 작업에서 ClientId 키를 발급 받았습니다.

3. Keys 작업에서 Key ID와 Private key를 다운 받았습니다.


댓글목록

등록된 댓글이 없습니다.

전체 59
게시물 검색
그누보드 목록
번호 제목 글쓴이 조회 날짜
59 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 31 03-22
58 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 28 03-22
57 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 127 01-12
56 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 140 01-11
55 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 124 01-11
54 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 251 10-29
53 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 355 09-14
52 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 388 08-21
51 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 393 08-06
50 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 362 08-05
49 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2008 03-22
48 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1287 03-22
열람중 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4579 08-09
46 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1879 07-22
45 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3936 07-16
44 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2152 06-28
43 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 1935 06-20
42 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2379 04-06
41 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2654 02-07
40 no_profile 운영자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 2680 02-03