首先,我首先要說確保您的服務器已準備好SSL
和ipv6
功能。 (照顧這些權利的蝙蝠,防止你的應用程序被拒絕,當它去應用程序審查)
在保護您的api路線,你可以看看JWT token
。 JWT使用密碼或證書(意思是私鑰和公鑰,想要在沒有密碼的情況下ssh到服務器時考慮)。
我寧願使用證書,但是您需要確保您不會丟失這些證書,因爲一旦您的應用準備銷售,只有這些特定的證書才允許您的應用與該api進行通話。
一旦你的API的所有路線固定,我想:
當你的iOS應用首次推出,你可以有某種保存到你的UserDefault isAlreadyFetchedToken = false
變量。這個變量允許你跟蹤你是否有新的令牌。
if isAlreadyFetchedToken == false {
// load the default token into some variable
let default_token = ...
// create custom http header
let header = ["Authorization": "Bearer \(default_token)" ]
// access your /generate_token route from your api
// if you get a response it should contain a new_token
// save new token into keychain && remove default one
// update userDefault var to true
isAlreadyFetchedToken = true
}
現在你要訪問您的API每一次,你會加載一個標記與從鑰匙圈,並把它傳遞到您的API路線例如[Authorization: "Bearer" + new_token]
Authorization header
。
這是一種方式,而不是唯一的方式