2017-04-28 10 views
0

앱 실행과 기기 다시 시작 사이에 영구 기억 토큰 (문자열)을 저장해야합니다. 토큰은 내 사용자가 앱과 백 엔드 서비스 (이미 빌드 된)에 로그인하면 서버에서 제공합니다. 특히, 기억 토큰에 대한 영구 데이터 자리 표시자를 설정해야하지만 코드에서 실제로 자리 표시 자의 값을 설정하지 않으려합니다.iOS 및 Swift에서 가장 좋은 방법으로 앱 실행 사이에 서버 제공 자격 증명을 저장합니다.

반면에 NSUserDefaults (현재는 UserDefaults)가이 작업을 수행하는 간단한 방법 인 것처럼 보였지만 설명서를 읽은 후에는 기능의 의도와 다르게 보입니다. 내가 본 모든 문서는 키에 값을 할당하여 설정하는 것을 보여줍니다. 앱이 그 키에 값을 할당하도록하고 싶지는 않습니다.

가장 간단한 방법은 무엇입니까?

+0

정말로 원하는 것은 분명하지 않습니다 ... 나는 당신이 문자열 (토큰 *)을 저장하고 UserDefaults를 솔루션으로 사용하고 싶다고 생각하는 이유는 무엇입니까? 토큰을 선택한 키 ("토큰"또는 "자격 증명")의 값으로 저장하십시오. 따라서 keu가있는 토큰을 검색 할 수 있습니다. –

+0

값을 적용하지 않고 데이터 구조를 설정하는 방법이 명확하지 않았습니다. – tobogranyte

+0

앱의 어떤 부분이 토큰을 영구 유지하기 위해 무언가를해야합니다. 값을 지정하는 것이 옵션이 아닌 경우 수신 한 정보를 어떻게 저장한다고 생각하십니까? –

답변

0

보안을 고려하면서 가장 간단한 방법은 키 체인을 사용하는 것입니다. 키 체인에 저장된 데이터는 예를 들어 터치 ID 지원을 설정할 때 제공되는 키를 사용하여 암호화됩니다.

그런 작업에 UserDefaults를 사용해서는 안됩니다. 그 이유는 UserDefaults가 번들의 일부인 암호화되지 않은 단순한 .plist 파일에 의해 뒷받침되며 ipa에 액세스 할 수있는 사람 (예 : jailbroken 장치가있는 사용자)이 쉽게 볼 수 있기 때문입니다.

KeychainAccess API는 Objective-C로 작성되었지만 Swift를 사용하여 캡슐화 한 수많은 래퍼가 있습니다. 당신이 이것을 사용할 수 있습니다 https://github.com/kishikawakatsumi/KeychainAccess