Ennuyeux informations d'identification non valides avec oauth 2.0 google + api
Je suis en train d'utiliser oauth 2.0 pour le google + api sur mon site, et je reçois:
{
"error": {
"errors": [{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}],
"code": 401,
"message": "Invalid Credentials"
}
}
La chose est, je ne sais pas pourquoi ce qui se passe. J'ai un jeton d'accès valide à partir de google, mais google dit être il n'est pas valide. Je sais que le jeton n'a pas expiré parce que les données json est la demande de google en moins de 10 secondes d'obtenir le jeton d'accès. Voici le processus que j'utilise:
- Obtenir à l'utilisateur d'autoriser la demande.
- Obtient demande de code de google.
- Utilise
cUrl
à la demande de jeton d'accès avec le code de la demande de google. - Met le code d'accès sur une session php.
- redirige retour à la page principale.
- Page principale détecte variable de session est définie et n'affiche pas de lien de connexion.
- Php sur la page principale utilise
readFile
pour obtenir la réponse json à partir de google. - Google renvoie des informations d'identification non valides.
voici un exemple d'uri généré par php, qui est inséré dans readFile:
Aider s'il vous plaît?
Probablement va avoir besoin d'un peu plus de code pour obtenir un retour d'information utile. Si vous êtes certain à 100% de votre jeton est valable, j'aimerais commencer en se concentrant sur la partie du code où vous présentez les informations d'identification. Peut-être que votre jeton n'est pas identique à la façon dont il va, et vous êtes invalider vous-même...?
OriginalL'auteur Kevin Pei | 2011-10-18
Vous devez vous connecter pour publier un commentaire.
Avez-vous essayé l'un de l'API de Google clients? Il y a starter applications que vous pouvez utiliser pour obtenir le roulement de boule.
https://developers.google.com/+/téléchargements
Il y a un sérieux problème lorsque la meilleure solution est de télécharger un client créé par le fournisseur. Je dis cela car il y a beaucoup de situations lors de l'intégration d'un client tel que celui ci-dessus n'est pas un choix lors de la construction des plus grandes et les plus dynamiques d'applications. Il serait agréable de voir une solution qui est à la base du problème, de sorte que les gens comprennent ce qui se passe réellement et peut traiter le problème de meilleures et de plus effieciently dans l'avenir. Merci.
accord à 100%
OriginalL'auteur Chirag Shah
Vous ne devriez pas partager le même jeton d'accès - que quelqu'un peut l'utiliser pour se faire passer pour vous (vraiment pour qui il a été accordé).
C'est mieux de passer le jeton d'Authentification comme en-tête, comme:
Ne sais pas si c'est indispensable, mais votre message d'erreur semble indiquer un auth erreur dans l'en-tête de sorte que vous peut-être un en-tête d'Autorisation qui ne correspond pas à celui dont vous avez besoin.
OriginalL'auteur Rob Russell
Voici une solution à l'aide de PHP pecl oauth extension. La volonté de signer la demande de la façon dont vous l'avez défini. Dans ce cas, dans un fichier de config objet json qui a été importée dans le script.
OriginalL'auteur Adgezaza
J'ai eu ce problème avant, mais avec twitter.
Pour OAuth en fait, nous communiquer avec twitter deux fois, d'abord à acquérir jeton de demande, en second lieu à autoriser l'envoi d'un premier jeton qui est déjà signé.
Peut-être que vous avez seulement à surmonter le 1er.
OriginalL'auteur NineAllexis
J'ai été faire les mêmes 401 "informations d'Identification non valides" erreur pendant quelques heures. Que j'ai remarqué que j'ai stocké mon access_token dans la base de données dans un VARCHAR(50). Elle a coupé une partie de l'access_token. J'ai augmenté la longueur de la colonne. FIXE.
Double-vérifier la longueur du champ dans la base de données où vous stockez vos access_token et aussi votre refresh_token!
OriginalL'auteur Christiaan Westerbeek
Je pense que le
me
API est cassé. Le problème a disparu quand j'ai essayer de demander à un URI avec un identificateur d'utilisateur réel. Je veux dire comme ceci:https://www.googleapis.com/plus/v1/people/108189587050871927619?key={your_api_key}
OriginalL'auteur Aminah Nuraini
Le problème pour moi a été l'en-tête "Autorisation" GET/POST demande:
Google documents a dit: Autorisation: /* jeton OAuth 2.0 ici */
Mais la bonne est: Autorisation: OAuth /* jeton OAuth 2.0 ici */
Oui! inclure "SERMENT" avant votre jeton de clé!
Si vous êtes à l'aide de cURL (PHP), utilisation:
OriginalL'auteur Paulo A. Costa