Maison > Questions et réponses > le corps du texte
Par exemplehttps://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000
我在nodejs中用var access_token=req.query.access_token;
impossible d'obtenir access_token
仅有的幸福2017-05-24 11:40:59
Impossible d'obtenir, # est le hachage frontal Lors de l'envoi d'une demande, le hachage après celle-ci ne sera pas envoyé à l'url. Je ne vous connais pas. Pourquoi y a-t-il #
à la fin ?黄舟2017-05-24 11:40:59
vous apprend une méthode particulière :
const querystring = require('querystring');
let str = 'https://beta.biaoqing.com/callback/qq/#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';
let r = querystring.parse(str);
console.log(r);
for(value in r){
console.log('key: ', value);
console.log('value: ', r[value]);
}
C’est considéré comme opportuniste.
La méthode Object.values() dans es6 peut remplacer la méthode for in ci-dessus, mais elle n'est compatible qu'avec la version node v7.x.
------------------------Séparateur-------------------- - ---------
Améliorez la méthode ci-dessus : supprimez le symbole # et tout ira bien.
const querystring = require('querystring');
const url = require('url');
let str = 'https://beta.biaoqing.com/callback/qq/?#access_token=CF0C8D1CDFEE38425CDB8A719080A153&expires_in=7776000';
let str2 = str.replace(/\#/g,'');//去掉 # 符号
let obj_query = querystring.parse(url.parse(str2).query); // 解析URL的 query 部分
console.log(obj_query.access_token);
迷茫2017-05-24 11:40:59
Il s'agit d'une page de destination de secours autorisée par un tiers, n'est-ce pas ?
Le front-end de cette page de destination peut récupérer le contenu derrière le hachage, la logique peut donc être la suivante :
L'utilisateur passe de votre site Web à l'autorisation tierce-> L'autorisation tierce passe avec succès à la page de destination de rappel prédéfinie sur votre site Web-> Le hachage de la page de destination de rappel contient access_token et d'autres paramètres-> js est pris. Envoyez une requête asynchrone à l'interface définie dans le backend en utilisant les paramètres du hachage -> renvoie le succès, le contrôle js saute -> Le navigateur est dirigé vers la véritable page de réussite de l'autorisation interactive pour l'utilisateur
En d'autres termes, la page de destination renvoyée lors de la première étape est une page de transit. Le but est d'utiliser js pour supprimer le contenu haché et de le renvoyer au backend avec ajax une fois que le backend a obtenu le jeton autorisé par le tiers. , js contrôle immédiatement le changement. Il est préférable d'ajouter une interface utilisateur à cette page de transfert, comme une invite telle que sauter, ce qui est absolument acceptable en termes d'expérience utilisateur.