Generating Token with in app by this way
func generateSignature(key: String, secret: String, meetingNumber: Int, role: Int) → String? {
let currentDate = Date()
var dateComponent = DateComponents()
dateComponent.day = 1
let expireDate = Calendar.current.date(byAdding: dateComponent, to: currentDate) ?? Date()
let iat = Int((currentDate.timeIntervalSince1970) * 1000)
// let iat = Int((Date().timeIntervalSince1970)) - 30
let exp = Int((expireDate.timeIntervalSince1970) * 1000)
let header = """
{
"alg": "HS256",
"typ": "JWT"
}
"""
let payload = """
{
"appKey": "\(key)",
"sdkKey": "\(key)",
"role": "0",
"mn": "\(meetingNumber)",
"iat": "\(iat)",
"exp": "\(exp)",
"tokenExp": "\(exp)",
"userID": "1234567890",
"userName": "John Doe"
}
"""
guard let headerData = header.data(using: .utf8),
let payloadData = payload.data(using: .utf8) else {
return nil
}
let base64UrlEncodedHeader = headerData.base64EncodedString()
.replacingOccurrences(of: "+", with: "-")
.replacingOccurrences(of: "/", with: "_")
.replacingOccurrences(of: "=", with: "")
let base64UrlEncodedPayload = payloadData.base64EncodedString()
.replacingOccurrences(of: "+", with: "-")
.replacingOccurrences(of: "/", with: "_")
.replacingOccurrences(of: "=", with: "")
let signatureData = HMAC<SHA256>.authenticationCode(for: (base64UrlEncodedHeader + "." + base64UrlEncodedPayload).data(using: .utf8)!, using: SymmetricKey(data: secret.data(using: .utf8)!))
let base64UrlEncodedSignature = Data(signatureData).base64EncodedString()
.replacingOccurrences(of: "+", with: "-")
.replacingOccurrences(of: "/", with: "_")
.replacingOccurrences(of: "=", with: "")
let jwtToken = "\(base64UrlEncodedHeader).\(base64UrlEncodedPayload).\(base64UrlEncodedSignature)"
return jwtToken
}
ERROR: MobileRTCAuthError(rawValue: 11).
we had also generate token by https://jwt.io/ but same issue.