Apple Push Notifications - Token-basierte Verbindungen zu APNs (Teil 3/4)

· Funktionen

In diesem Blogbeitrag zeige ich dir, wie du den sgcWebSockets- JWT-Client konfigurierst, um authentifizierte HTTP/2-Anfragen an Apple-Push-Notification-Server zu senden.

Sichere deine Kommunikation mit dem Apple Push Notification service (APNs) über zustandslose Authentifizierungs-Tokens.

Zuerst musst du einen Encryption Key und eine Key ID aus deinem Apple Developer Account beschaffen. Nach erfolgreicher Registrierung erhältst du einen 10-stelligen String mit der Key ID und einen Signing Key für den Authentifizierungs-Token als .p8-Datei.

Du musst den sgcWebSockets-JWT-Client verwenden, um einen JWT mit ES256 als Algorithmus zu generieren. Das Token darf nicht für jede HTTP/2-Anfrage generiert werden; es darf nicht früher als nach 20 Minuten und nicht später als nach 60 Minuten erneuert werden.

JWT-Client konfigurieren 

Konfiguriere den JWT-Client mit folgenden Werten:

Token-basierte Verbindungen erfordern das Senden des apns-topic mit dem Wert der Bundle-ID/App-ID deiner App (Beispiel: com.example.application).

oHTTP := TsgcHTTP2Client.Create(nil);
oHTTP.TLSOptions.IOHandler := iohOpenSSL;
oJWT := TsgcHTTP_JWT_Client.Create(nil);
oHTTP.Authentication.Token.JWT := oJWT;
oJWT.JWTOptions.Header.alg := jwtES256;
oJWT.JWTOptions.Header.kid := 'apple key id';
oJWT.JWTOptions.Payload.iss := 'issuer';
oJWT.JWTOptions.Payload.iat := StrToInt64(GetDateTimeUnix(Now, False));
oJWT.JWTOptions.Algorithms.ES.PrivateKey.LoadFromFile('AuthKey_**.p8');
oJWT.JWTOptions.RefreshTokenAfter := 60*40;
oHTTP.Request.CustomHeaders.Clear;
oHTTP.Request.CustomHeaders.Add('apns-topic: com.example.application');