2017-08-01 1 views
1

J'ai créé des sites Web qui utilisent l'authentification par jeton et je les héberge sur GoDaddy. L'authentification utilise Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider. On peut trouver le code pour l'authentification ici: https://github.com/quintonn/BasicAuthenticationLes jetons d'actualisation expirent sur GoDaddy mais pas sur le serveur local avec OAuthAuthorizationServerProvider

Maintenant, mon problème est la suivante:

Lorsque je me connecte à l'aide d'un nom d'utilisateur et mot de passe, je reçois un accès et actualisez jeton. Ceux-ci fonctionnent comme je peux obtenir un nouveau jeton d'accès si le jeton d'actualisation est toujours valide. Il semble que chaque fois que je déploie un nouveau code sur le serveur, tous les jetons d'actualisation et d'accès deviennent invalides et tout utilisateur utilisant mon site Web doit se reconnecter. J'ai essayé de reproduire ceci sur ma machine de dev mais en la redémarrant, en exécutant IIS RESET, mais sur ma machine locale, je suis toujours connecté.

Bizarrement, l'erreur que je vois (dans les outils de développement), est juste " {invalid_grant} "sans raison ou plus d'informations. Ce n'est pas le cas dans mon code et je ne peux pas comprendre ce qui ne va pas avec ma demande et pourquoi cela se produit uniquement sur mon site Web hébergé sur GoDaddy.

Si quelqu'un a des idées ou des suggestions, ce serait génial.

Merci d'avance.

Répondre

1

Par défaut, les jetons sont signés par la clé de protection de l'hôte owin. Dans l'hébergement SystemWeb, cette clé de protection est le paramètre machineKey de web.config.

À la réception, le même code est utilisé pour décoder le jeton. Sur votre machine dev, ce code ne change jamais. Je ne sais pas comment fonctionne GoDaddy, mais il semble que chaque déploiement se fasse sur une autre machine (virtuelle) (webfarm?).

Dès que la touche de la machine change, les jetons ne peuvent plus être décodés. Ainsi, tous les utilisateurs doivent se reconnecter. L'erreur 'allocation invalide' fait partie du flux d'identité sous-jacent responsable du décodage et de l'évaluation du jeton reçu.

Afin de résoudre ce problème, vous devrez définir un code fixe dans la configuration.

+0

Je vais regarder dans ce plus. Je noterai ceci comme étant répondu si je peux le tester. Merci – Quintonn

+0

Merci. Cela semble avoir fonctionné. J'ai créé une clé d'ordinateur. Avez-vous des suggestions sur la manière de conserver/de rendre la clé machine plus sûre que de simplement la laisser dans le fichier web.config? – Quintonn

+0

De rien. En ce qui concerne la question de garder la clé de la machine en sécurité, je n'ai pas de meilleure suggestion. Tout ce que je peux suggérer, c'est que vous créez une nouvelle question pour attirer l'attention des autres. –