Je travaille sur un projet web (HTML, CSS, JavaScript, avec back-end en PHP). J'ai réussi à faire fonctionner une connexion Google, en utilisant leur API simple, mais je ne peux pas obtenir l'équivalent de Microsoft pour fonctionner. Les solutions en ligne officielles semblent s'appuyer sur .NET ou PHP Composer. Je vais essayer le compositeur si c'est le seul moyen, mais une méthode JS/PHP pure serait la plus simple. J'ai essayé d'utiliser ce qui suit:Comment créer un compte Microsoft Connexion à mon site Web, similaire à Google?
https://github.com/microsoftgraph/msgraph-sdk-javascript
https://github.com/AzureAD/microsoft-authentication-library-for-js
Le code ci-dessous est le plus proche que je suis venu à une solution de travail. Je peux obtenir une sorte d'identifiant d'utilisateur (qui semble être unique et constant pour chaque utilisateur). Cela pourrait être suffisant pour configurer le système de connexion que je veux, mais ce serait idéal si je pouvais aussi aller chercher leur nom et leur photo de profil.
<script class="pre">
var userAgentApplication = new Msal.UserAgentApplication("MY CLIENT ID", null, function (errorDes, token, error, tokenType) {
// this callback is called after loginRedirect OR acquireTokenRedirect (not used for loginPopup/aquireTokenPopup)
})
userAgentApplication.loginPopup(["user.read"]).then(function (token) {
var user = userAgentApplication.getUser(); //this is good
//user.userIdentifier seems to be a unique ID
//I will store this and use it for future verification
console.log(user);
//START
// get an access token
userAgentApplication.acquireTokenSilent(["user.read"]).then(function (token) {
console.log("ATS promise resolved");
}, function (error) {
console.log(error);
// interaction required
if (error.indexOf("interaction_required") != -1) {
userAgentApplication.acquireTokenPopup(["user.read"]).then(function (token) {
// success
console.log("s2");
}, function (error) {
console.log("e2");
// error
});
}
});
//END
// signin successful
}, function (error) {
console.log(error);
// handle error
});
</script>
(ce code ne fonctionne pas comme je l'ai collé parce qu'il repose sur le script MSAL à partir du deuxième lien github, et a besoin d'un client d'application ID)