AppleAuth est une bibliothèque très simple pour .NET qui encapsule la logique de communication avec l'API REST d'Apple pour se connecter avec Apple. L’objectif principal est de faciliter la mise en œuvre de la connexion avec Apple pour toute application Web.
Pour installer le package, exécutez la commande suivante dans votre console Package Manager :
PM > Install - Package AppleAuth . NETOu bien, installez simplement le package à l’aide du gestionnaire de packages Nuget. Le projet peut être trouvé ici : Lien vers NuGet
Pour utiliser la connexion avec Apple, vous devez vous inscrire au programme pour développeurs Apple. Une fois inscrit au programme, accédez à l'aide du compte développeur et accédez à Configurer les fonctionnalités de l'application > Se connecter avec Apple. Vous y trouverez les informations permettant de configurer la connexion avec Apple pour votre application.
Vous pouvez également consulter mon article de blog pour plus d'informations sur la définition des paramètres de votre compte développeur en mettant en œuvre la connexion avec Apple.
Ensuite, vous devez configurer votre page Web pour vous connecter avec Apple. Suivez les directives de la documentation officielle. Vous pouvez également vous référer à ce lien pour voir comment configurer les styles des boutons.
Si vous déployez votre application sur une application Web Azure, assurez-vous d'ajouter le paramètre suivant : WEBSITE_LOAD_USER_PROFILE = 1 , afin qu'IIS puisse accéder au stockage de clé privée sous le magasin de comptes d'utilisateur. Vous pouvez l'appliquer à partir du portail Azure depuis Configuration > Paramètres de l'application, ou vous pouvez exécuter la commande suivante dans Cloud Shell :
az webapp config appsettings set --name <app-name> --resource-group <resource-group-name> --settings WEBSITE_LOAD_USER_PROFILE=1 .
Il est également important de noter que ce paramètre est disponible uniquement pour les niveaux tarifaires non partagés.
Si vous déployez votre application sur votre propre serveur Web, exécutant Microsoft IIS, vous devrez activer « Charger le profil utilisateur » sous « Paramètres avancés » sur votre pool d'applications. Sinon, vous obtiendrez une CryptographicException disant "Le système ne peut pas trouver le fichier spécifié".
AppleAuthProvider.cs Créez une nouvelle instance de AppleAuthProvider , transmettez les paramètres requis et vous êtes prêt à partir. Utilisez la méthode GetAuthorizationToken pour obtenir un jeton d'autorisation d'Apple ; Utilisez la méthode GetRefreshToken pour vérifier si un utilisateur utilise toujours « Se connecter avec Apple » pour se connecter à votre système ; Utilisez la méthode GetButtonHref pour obtenir une chaîne de requête pour le bouton « Se connecter avec Apple ».
Une fois que l'utilisateur a cliqué sur le bouton « Se connecter avec Apple » sur votre page, il sera redirigé vers https://appleid.apple.com/. Après avoir fourni leurs informations d'identification, Apple enverra une requête POST à l'URL que vous avez spécifiée comme URL de redirection. Vous pouvez gérer la demande en utilisant InitialTokenResponse.cs . Afin de récupérer un jeton d'autorisation, vous devez d'abord créer une nouvelle instance d' AppleAuthProvider avec les paramètres requis. Après cela, appelez simplement la méthode GetAuthorizationToken() en passant code de votre objet InitialTokenResponse et de votre clé privée. Voici un exemple d’implémentation en C# :
[ HttpPost ]
public async Task HandleResponseFromApple ( AppleAuth . TokenObjects . InitialTokenResponse response )
{
string privateKey = System . IO . File . ReadAllText ( "path/to/file.p8" ) ;
AppleAuth . AppleAuthProvider provider = new AppleAuth . AppleAuthProvider ( "MyClientID" , "MyTeamID" , "MyKeyID" , "MyRedirectUrl" , "SomeState" ) ;
AppleAuth . TokenObjects . AuthorizationToken authorizationToken = await provider . GetAuthorizationToken ( response . code , privateKey ) ;
} Gardez à l'esprit que les jetons renvoyés par Apple sont de courte durée, vous devez donc créer une session ou un utilisateur dans votre système à l'aide de l'objet AppleAuth.TokenObjects.AuthorizationToken renvoyé. Après cela, vous pouvez vérifier si l'utilisateur est toujours connecté à l'aide de « Se connecter avec Apple » en récupérant un jeton d'actualisation à l'aide de la méthode GetRefreshToken :
[ HttpPost ]
public async Task < bool > IsUserUsingAppleID ( )
{
string privateKey = System . IO . File . ReadAllText ( "path/to/file.p8" ) ;
AppleAuth . AppleAuthProvider provider = new AppleAuthProvider ( "MyClientID" , "MyTeamID" , "MyKeyID" , "https://myredirecturl.com/HandleResponseFromApple" , "SomeState" ) ;
AppleAuth . TokenObjects . AuthorizationToken refreshToken = await provider . GetRefreshToken ( authorizationToken . RefreshToken , privateKey ) ;
return refreshToken != null ;
}Vous êtes plus que bienvenu pour contribuer au projet et l’améliorer. Lorsque vous contribuez, essayez de maintenir une attitude strictement professionnelle, respectueuse et amicale. Assurez-vous également de communiquer la modification que vous souhaitez apporter via un problème ou toute autre méthode aux propriétaires de ce référentiel.
Nous n'avons pas de directives strictes pour créer des demandes d'extraction, mais vous pouvez utiliser le flux GitHub déjà connu pour les directives générales.
Ce projet est sous licence MIT - voir LICENSE.md pour plus de détails