Felrapportering error-reporting
Ökning overview
Felrapportering i Adobe Pass-autentisering är för närvarande implementerat på två olika sätt:
-
Avancerad felrapportering Implementeraren registrerar ett felanrop om AccessEnabler JavaScript SDK används eller implementerar en gränssnittsmetod med namnet
status
om AccessEnabler iOS/tvOS SDK och AccessEnabler Android SDK används för att få avancerad felrapportering. Fel kategoriseras i typerna Information, Varning och Fel. Det här rapporteringssystemet är asynkront, eftersom det inte finns någon garanti för i vilken ordning flera fel ska utlösas. Mer information om det avancerade felrapporteringssystemet finns i avsnittet Avancerad felrapportering. -
Ursprunglig felrapportering - Ett statiskt rapporteringssystem där felmeddelanden skickas till specifika callback-funktioner när specifika begäranden misslyckas. Fel grupperas i generiska, autentiserings- och auktoriseringstyper. En lista över fel som rapporterats i det ursprungliga systemet finns i avsnittet Originalfelrapportering.
Avancerad felrapportering advanced-error-reporting
AccessEnabler JavaScript SDK accessenabler-javascript-sdk
Det nya felrapporteringssystemet är inte obligatoriskt, och därför kan implementeraren uttryckligen registrera ett felhanteringsanrop för att få avancerade felrapporter. I systemet kan du registrera och avregistrera flera felåteranrop dynamiskt. Dessutom kan du registrera nya felåteranrop så snart AccessEnabler JavaScript SDK har lästs in, utan att du behöver utföra någon annan initiering (innan setRequestor()
anropas), vilket innebär att du kan få avancerade rapporter om initierings- och konfigurationsfel.
Implementering access-enab-js-imp
yourErrorHandler(errorData:Object)
Callback-funktionen för felhanteraren får ett enda objekt (en karta) med följande struktur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Bind bind
.bind(eventType:String, handlerName:String):void
Kopplar en hanterare för en händelse.
eventType
- ENDAST värdet errorEvent
resulterar i att AccessEnabler JavaScript SDK utlöser avancerade felrapporter.
handlerName
- en sträng som anger namnet på felhanterarfunktionen.
Båda bind-parametrarna får endast innehålla tecken från följande uppsättning: [0-9a-zA-Z][-._a-zA-Z0-9]
, det vill säga parametrar måste börja med en siffra eller bokstav och kan sedan endast innehålla bindestreck, punkter, understreck och alfanumeriska tecken. Dessutom får parametrarna inte överskrida 1 024 tecken.
Exempel på felhanterare för bindning:
accessEnabler.bind('errorEvent', 'myCustomErrorHandler');
accessEnabler.bind('errorEvent', 'errorLogger');
På grund av tekniska begränsningar kan du inte binda ett stängningsställe eller en anonym funktion. Du måste ange metodens namn i den andra parametern.
2. Lås upp bindning unbind
.unbind(eventType:String, handlerName:String=null):void
Tar bort en tidigare kopplad händelsehanterare.
eventType
- ENDAST värdet errorEvent
resulterar i att AccessEnabler JavaScript SDK utlöser avancerade felrapporter.
handlerName
- en sträng som anger namnet på felhanterarfunktionen, om är null eller saknar alla kopplade hanterare för den angivna eventType
tas bort.
Båda bind-parametrarna får endast innehålla tecken från följande uppsättning: [0-9a-zA-Z][-._a-zA-Z0-9]
, det vill säga parametrar måste börja med en siffra eller bokstav och kan sedan endast innehålla bindestreck, punkter, understreck och alfanumeriska tecken. Dessutom får parametrarna inte överskrida 1 024 tecken.
Exempel på att ta bort en enda felhanterare:
accessEnabler.unbind('errorEvent', 'errorLogger');
Exempel som tar bort alla felhanterare:
accessEnabler.unbind('errorEvent');
AccessEnabler iOS/tvOS SDK accessenabler-ios-tvos-sdk
Det nya felrapporteringssystemet är obligatoriskt, och därför måste den som genomför felrapporteringen uttryckligen följa det nya mål C-protokollet "EntitlementStatus". Med den här nya metoden kan programmerare få avancerad felrapportering.
Implementering accessenab-ios-tvossdk-imp
En implementor måste följa följande EntitlementStatus -protokoll:
EntitlementStatus.h
#import <Foundation/Foundation.h>
@protocol EntitlementStatus <NSObject>
- (void)status:(NSDictionary *)statusDictionary;
@end
Funktionen status kommer att ta emot ett enda objekt (ett NSDictionary
) med följande struktur:
{
errorId: "CFG410",
level: "error",
message: "This a fancy message", // Optional
.
. // Optional key/value pairs
.
}
1. Deklaration
@interface MyEntitlementStatusDelegate : NSObject <EntitlementStatus>
2. Implementering
@implementation DemoAppAppDelegate
// very simple implementation
- (void)status:(NSDictionary *)statusDict {
NSLog(@"%@:\n%@", statusDict[@"level"], statusDict);
}
AccessEnabler Android SDK accessenabler-android-sdk
Det nya felrapporteringssystemet är obligatoriskt eftersom implementeraren måste följa det gränssnittsdefinierade protokollet IAccessEnablerDelegate
. Med den här nya metoden kan programmerare få avancerad felrapportering.
Implementering access-enablr-androidsdk-imp
En implementerare måste hantera den nya status
-metoden från gränssnittet IAccessEnablerDelegate
. Funktionen status
kommer att ta emot ett enskilt AdvancedStatus
-objekt med följande modell:
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Exempel
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
AccessEnabler FireOS SDK accessenabler-fireos-sdk
Det nya felrapporteringssystemet är obligatoriskt eftersom implementeraren måste följa det gränssnittsdefinierade protokollet IAccessEnablerDelegate
. Med den här nya metoden kan programmerare få avancerad felrapportering.
Implementering access-enab-fireos-sdk-
En implementerare måste hantera den nya status
metoden från gränssnittet IAccessEnablerDelegate
. Funktionen status
kommer att ta emot ett enskilt AdvancedStatus
-objekt med följande modell:
class AdvancedStatus {
String id; // Not Null
String level; // Not Null
String message; // Might be null
String resource; // Might be null
AdvancedStatus(String id, String level, String message, String resource) {
this.id = id;
this.level = level;
this.message = message;
this.resource = resource;
}
//other private/public methods
}
Exempel
@Override
public void status(AdvancedStatus advancedStatus) {
String status = "status(" + advancedStatus.id + ", " + advancedStatus.level + ", " + advancedStatus.message + ", " + advancedStatus.resource + ")";
Log.i(LOG_TAG, status);
}
Avancerad felkodsreferens advanced-error-codes-reference
I följande tabell visas och beskrivs felkoderna som visas av det nyare fel-API:t, tillsammans med förslag på åtgärder som ska vidtas för att korrigera dem:
Instruera/uppmana användaren att explicit logga ut från Inställningar -> TV-leverantör på iOS/iPadOS.
Logga ut explicit från Inställningar -> TV-leverantör på iOS/iPadOS
- Kontakta Adobe för att hantera domänens vitlista för det begärande-ID som används
- iOS: verifiera att du använder rätt certifikat och att signaturen har skapats korrekt
- Om du vill kan du informera användaren om att han/hon måste logga in igen.
[https://]{SP_FQDN\}
i webbläsaren och acceptera SSL-certifikaten manuellt, till exempel https://api.auth.adobe.com eller https://api.auth-staging.adobe.com- Markera proxycertifikaten som tillförlitliga
Vidta åtgärder för att förhindra berättigandeflöden eftersom de troligtvis kommer att misslyckas.
- utvecklaren har en ogiltig förfalskning på plats.
-Användaren har nätverksproblem och kan inte nå Adobe Pass-autentiseringsdomänerna.
-Adobe Pass autentiseringsservrar är felkonfigurerade.
Obs! I Firefox visas CFG400 i stället för CFG404 (webbläsarbegränsning)
-Kontrollera nätverks-/DNS-inställningar.
-Inform Adobe.
- Kringgå Adobe Pass-autentisering.
- Informera Adobe.
- Ange en lista med vanliga MVPD-program om du vill.
- Visa en lista över vanliga MVPD-program.
- Dölj alternativet TempPass.
1. Webbläsaren har inaktiverat (tredje part) cookies (gäller inte för AccessEnabler JavaScript SDK version 4.x)
2. Webbläsaren har alternativet Förhindra spårning över webbplatser aktiverat (Safari 11+)
3. Sessionen har upphört
4. Programmeraren anropar autentiserings-API:er i felaktig följd
Obs! Den här felkoden är inte tillgänglig för omdirigeringsflöden på helsidan.
2. Prova användaren att inaktivera spårning mellan webbplatser
3. Uppmana användaren att återautentisera
4. Anropa API:er i rätt ordning
2. Inaktivera spårning av flera webbplatser
3. Autentisera
igen
4. Ej tillämpligt
Obs! Detta är det ursprungliga felsystemets "Generic Authentication Error" och "Internal Authentication Error". Det här felet kommer till slut att fasas ut.
Obs! Detta är ett oåterkalleligt fel. Informera användaren om att programmet inte är tillgängligt.
- JavaScript: Kontrollera programsatsen i webbprogrammet.
Öppna en biljett med Zendesk och informera användaren om att systemet är tillfälligt otillgängligt
Obs! Detta är ett oåterkalleligt fel. Informera användaren om att programmet inte är tillgängligt.
- JavaScript: Kontrollera programsatsen i webbprogrammet.
Öppna en biljett med Zendesk och informera användaren om att systemet är tillfälligt otillgängligt
Obs! Detta är ett oåterkalleligt fel. Informera användaren om att programmet inte är tillgängligt.
- Informera användaren.
- Nyckeln message i felmeddelandet KAN innehålla ett mer detaljerat meddelande från MVPD.
- Informera användaren.
- Informera användaren om att MVPD hade problem och de bör försöka senare.
Obs! Detta är det gamla felet för allmän autentisering och intern autentisering. Det här felet kommer till slut att fasas ut.
- Kontakta supporten för Adobe Pass-autentisering om du vill hitta/ställa in maximalt antal tillåtna resurser.
Autentisering/auktorisering finns inte längre än den aktuella sidan.! Varje sidinläsning gör att användaren måste autentisera. Konfigurerade TTL:er används inte vid sidomladdning.
- Informera användaren om hur det tillgängliga lagringsutrymmet ska ökas.
- Du kan även logga ut för att rensa lagringsutrymmet.
- Logga ut för att rensa lagringsutrymmet.
Ursprunglig felrapportering original-error-reporting
I det här avsnittet beskrivs det ursprungliga felrapporteringssystemet tillsammans med de ursprungliga felkoderna. I det ursprungliga felrapporteringssystemet skickar AccessEnabler fel till dessa två callback-funktioner: setAuthenticationStatus()
efter ett anrop till checkAuthentication()
; tokenRequestFailed()
, efter att ett anrop till checkAuthorization()
eller getAuthorization()
misslyckades.
Den ursprungliga felrapporteringen och status-API:n fortsätter att fungera exakt som tidigare. Om du fortsätter uppdateras emellertid inte de ursprungliga felrapporterings-API:erna. Alla nya felrapporter och uppdateringar av gamla fel visas ENDAST i det nya avancerade felrapporteringssystemet.
Exempel på hur du använder det ursprungliga felrapporteringssystemet finns i JavaScript API Reference:setAuthenticationStatus() och tokenRequestFailed() -funktionerna, iOS/tvOS API Reference: setAuthenticationStatus() och tokentRequestFailed(), Android API Reference: setAuthenticationStatus() och tokenRequestFailed().