Bạn không thể làm điều đó "an toàn". Mã thông báo là kiến thức công khai và ngay sau đó trên thiết bị của bạn, tin tặc có thể truy cập vào nó bất kể bạn cố gắng làm gì để bảo vệ nó. Đặt nó trong keychain sẽ không thay đổi thực tế này. Ngay cả khi bạn lưu trữ nó ở đó, mà sẽ làm cho nó an toàn trong khi nó ở đó, họ chỉ có thể chờ đợi cho đến khi nó hết hạn sau đó snag tiếp theo khi nó đến trong dây tiếp theo thời gian. Mã thông báo truy cập của bạn không phải là điều bạn cần phải lo lắng về việc bảo mật, bởi vì bạn không thể, trên thực tế, làm điều đó trong môi trường di động.
Điều này có nghĩa là bạn có thể lưu trữ ở bất cứ đâu bạn muốn. NSUserDefaults là tốt, keychain là tốt, một cơ sở dữ liệu là tốt, một tập tin văn bản trong thư mục tài liệu của bạn là tốt. Tất cả chúng đều an toàn như nhau vì một hacker xác định có thể đơn giản chờ cơ hội thích hợp để truy cập dữ liệu mà họ muốn. Thay vào đó, bạn nên lo lắng về việc bảo mật thông tin đăng nhập xác thực của người dùng. Hãy chắc chắn rằng bạn lưu trữ chúng trong keychain và chỉ liên lạc với API của bạn qua HTTPS tới máy chủ có chứng chỉ SSL hợp lệ.
Bạn cũng có thể xem hướng dẫn OWASP - https://www.owasp.org/index.php/IOS_Developer_Cheat_Sheet – rajagp