国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison Applet WeChat Développement WeChat Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Feb 25, 2017 pm 05:18 PM

OAuth est un protocole ouvert qui permet aux utilisateurs de permettre à des applications tierces d'obtenir les ressources privées de l'utilisateur (telles que les informations personnelles de l'utilisateur, les photos, les vidéos, les listes de contacts) stockées sur un site Web de manière sécurisée et standard sans avoir besoin de fournir un nom d'utilisateur. et mot de passe pour les applications tierces. Cet article présentera en détail le protocole OAuth et son implémentation spécifique dans WeChat.

Introduction au protocole OAuth2.0

OAuth2.0 est la prochaine version du protocole OAuth, mais n'est pas rétrocompatible avec OAuth 1.0. OAuth 2.0 se concentre sur la simplicité pour les développeurs clients, tout en fournissant des flux d'authentification spécialisés pour les applications Web, les applications de bureau et les appareils mobiles et de salon. OAuth 2.0 permet aux utilisateurs de fournir un jeton au lieu d'un nom d'utilisateur et d'un mot de passe pour accéder à leurs données stockées auprès d'un fournisseur de services spécifique. Chaque jeton autorise un site Web spécifique (par exemple, un site Web de montage vidéo) à accéder à une ressource spécifique (par exemple, uniquement les vidéos d'un certain album) pendant une période de temps spécifique (par exemple, dans les 2 heures suivantes). De cette manière, OAuth permet aux utilisateurs d'autoriser des sites Web tiers à accéder à leurs informations stockées chez un autre fournisseur de services sans partager leurs autorisations d'accès ni l'intégralité du contenu de leurs données.

Le processus spécifique d'authentification et d'autorisation OAuth2.0?:

Les trois parties impliquées dans le processus d'authentification et d'autorisation Oauth2.0 comprennent?:

1 . Fournisseur de services, que les utilisateurs utilisent pour stocker des ressources protégées telles que des photos, des vidéos et des listes de contacts.

2. Utilisateur, propriétaire des ressources protégées stockées chez le fournisseur de services.

3. Client, une application tierce qui souhaite accéder aux ressources du fournisseur de services, généralement un site Web, tel qu'un site Web fournissant des services d'impression de photos. Avant le processus d'authentification, le client doit demander une identité client auprès du fournisseur de services.

Le processus d'utilisation d'OAuth pour l'authentification et l'autorisation est le suivant?:

1 L'utilisateur accède au site Web du client et souhaite exploiter les ressources de l'utilisateur stockées sur le service. fournisseur;

2. Le client demande un jeton temporaire au fournisseur de services;

3. Une fois que le fournisseur de services a vérifié l'identité du client, il accorde un jeton temporaire;

4. Une fois que le client a obtenu le jeton temporaire, il dirige l'utilisateur vers la page d'autorisation du fournisseur de services pour demander l'autorisation de l'utilisateur. Dans ce processus, le jeton temporaire et la connexion de rappel du client sont envoyés au fournisseur de services

5. L'utilisateur saisit le nom d'utilisateur et le mot de passe sur la page Web du fournisseur de services, puis autorise le client à accéder à la demande. ressource. ;

6. Une fois l'autorisation réussie, le fournisseur de services guide l'utilisateur pour revenir à la page Web du client?;

7. sur le jeton temporaire?;

8. Le fournisseur de services accorde au client un jeton d'accès basé sur le jeton temporaire et l'autorisation de l'utilisateur

9. Le client utilise le jeton d'accès obtenu pour accéder protégé?; fichiers stockés sur les ressources du fournisseur de services.


Autorisation OAuth2.0 de la page Web WeChat?:

Si l'utilisateur accède à la page Web tierce du compte officiel dans WeChat (sauf Web WeChat), le développeur du compte officiel peut obtenir le Informations utilisateur de base actuelles (y compris le surnom, le sexe, la ville, le pays). à l'aide des informations utilisateur, vous pouvez réaliser des fonctions telles que l'optimisation de l'expérience, les statistiques de source d'utilisateurs, la liaison de compte et l'authentification de l'identité de l'utilisateur.

Il convient de noter que l'interface d'obtention des informations utilisateur de base (qui sera présentée dans un article de blog ultérieur) ne peut obtenir les informations de base de l'utilisateur basées sur l'OpenID de l'utilisateur que lorsque l'utilisateur interagit avec le compte public, et elle peut être obtenue via l'autorisation de la page Web. Si les informations de base de l'utilisateur ne nécessitent pas d'interaction de message, juste au moment où l'utilisateur accède à la page Web du compte officiel, une interface demandant l'autorisation de l'utilisateur appara?tra une fois que l'utilisateur l'aura autorisée, sa base. des informations peuvent être obtenues (ce processus ne nécessite même pas que l'utilisateur ait suivi le compte officiel.)

Ci-dessous, nous utiliserons un exemple spécifique pour montrer le processus de développement détaillé.

Configurez le nom de domaine de rappel d'autorisation?:

Avant que le compte public WeChat ne demande l'autorisation de la page Web de l'utilisateur, les développeurs doivent Configurez d'abord le nom de rappel d'autorisation sur la page Mon service du site Web de la plateforme publique. Il convient de noter que le nom de domaine ici n'inclut pas http:// ou https://. De plus, la spécification de configuration du nom de domaine de rappel d'autorisation est le nom de domaine complet. Par exemple, le nom de domaine qui nécessite une autorisation de page Web est?: www.qq.com Après la configuration, toutes les pages sous ce nom de domaine, telles que http:/. /www.qq.com/music.html, http://www.qq.com/login.html peut effectuer l'authentification OAuth2.0. Cependant, http://pay.qq.com et http://music.qq.com ne peuvent pas effectuer l'authentification OAuth2.0.

Pour cela, entrez dans la page du service (utilisez le compte de service officiel ou le compte d'abonnement certifié et retrouvez-le via mon service. S'il s'agit d'un compte test, vous pouvez le trouver directement sur la page d'accueil) et trouvez le Autorisation de la page Web OAuth2.0. Cliquez sur le lien de modification à droite?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Entrez le nom de domaine dans la fenêtre contextuelle et cliquez sur le bouton OK pour enregistrer?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

L'utilisateur accepte d'autoriser et d'obtenir le code?:

Cette étape est équivalente à la deuxième étape du processus d'authentification OAuth2.0 introduite précédemment "Le client demande un jeton temporaire au fournisseur de services". Le code ici est le jeton temporaire. à cet effet, vous pouvez demander l'OAuth2 de WeChat. .0 pour obtenir le code. Une URL de page de rappel doit être spécifiée dans les paramètres de cette interface. Pour cela, nous devons créer une page Apex. Pour ce faire, connectez-vous à Force.com et recherchez le nom de domaine. Le nom de domaine généralement accessible depuis la Chine est https://ap1.salesforce.com, saisissez https://ap1.salesforce.com/apex/oauth2test dans la barre d'adresse du navigateur, Force.com vous demandera que la page n'existe pas, cliquez sur le lien "Créer une page oauth2test" pour créer la page :

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

La page créée est la suivante Si le mode développeur est activé, la page est divisée en parties supérieure et inférieure. . La partie supérieure est l'effet d'affichage et la partie inférieure est la fenêtre d'édition du code source. Par défaut, Force.com appliquera ses propres styles de navigation supérieure, de navigation gauche et CSS à la page nouvellement créée?:

<.>Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Nous disons à Force en ajoutant le code suivant dans la première ligne .com n'utilisez pas le style CSS par défaut, n'affichez pas les barres de navigation supérieure et gauche, et le dernier attribut du contr?leur spécifie la classe de contr?leur correspondante à la page apex, similaire à la classe aspx.cs correspondant à la page aspx, et la souris reste dans la fenêtre de la barre d'édition, maintenez la combinaison de touches Ctrl S enfoncée pour enregistrer le code édité?:

à l'heure actuelle, la classe oauth2testcontroller correspondante n'existe pas, et la Le navigateur signalera l'erreur suivante?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Cliquez ici une deuxième fois. Le lien "Créer une classe Apex 'classe publique oauth2testcontroller'" crée automatiquement la classe du contr?leur. Notez que la seule différence entre ces deux liens est le mot-clé "avec partage". Ce mot-clé précise que la classe actuelle a les mêmes droits d'accès aux différents objets (équivalents aux tables de données), champs, etc. que l'utilisateur actuellement connecté. Si non spécifié, Apex La page aura accès à tous les objets et champs. Après la création, il y aura un onglet de classe de contr?leur supplémentaire dans la barre d'édition de code ci-dessous?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Ajoutez le code suivant dans cette classe?:

public class oauth2testcontroller { 
    public String code {get; set;} 
    public oauth2testcontroller(){ 
        code = ApexPages.currentPage().getParameters().get(&#39;code&#39;); 
        if(String.isBlank(code)){ 
            code = &#39;No Code&#39;; 
        } 
    } 
}


La 2ème ligne de ce code définit un code d'attribut public. La 4ème ligne obtient le paramètre de code dans l'URL via l'objet ApexPages, puis détermine si la valeur du code est vide si elle est vide. , puis Invite sans code. Ci-dessous, nous verrons que lorsque l'autorisation WeChat rappelle avec succès cette URL, le paramètre code sera ajouté à l'URL.

Ensuite, modifiez légèrement la première page pour afficher la valeur du code obtenue sur la page?:

 <apex:page standardstylesheets="false" showHeader="false" sidebar="false" controller="oauth2testcontroller"> 
     {!code} 
 </apex:page>
{!Object name} est la syntaxe utilisée pour afficher les valeurs des objets dans la Force .com Visualforce, nous devons ensuite configurer la page pour qu'elle soit accessible via le réseau public. Pour ce faire, connectez-vous à Force.com, entrez Configuration –> Développer des sites –> le site comme indiqué ci-dessous?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Après être entré dans la page de configuration détaillée, recherchez la "Page Visualforce du site" et cliquez sur le bouton Modifier à droite?:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

Retrouvez oauth2test dans la liste de gauche Ajoutez la page à droite et enregistrez les modifications :

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

A ce moment, vous pouvez passer l'adresse du réseau public http://johnson0001-developer-edition.ap1.force.com/oauth2test Visitons la page que nous avons créée précédemment. Ensuite, nous pouvons utiliser l'interface d'authentification OAuth2 de la plateforme WeChat pour composer l'URL et guider les utilisateurs pour y accéder via WeChat. Le format de l'interface est le suivant?:

https://open.weixin.qq. .com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect


若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限,其中每個參數的詳細說明如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

在我們的例子里URL如下,其中scope我們指定為snsapi_userinfo,彈出授權頁面:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3b3aef2c09447269&redirect_uri=http://johnson0001-developer-edition.ap1.force.com/oauth2test&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

興許是測試賬號的關系,雖然微信接口文檔里提到在制定scope為snsapi_userinfo的情況下會彈出如下圖左所示的授權頁面,但反復嘗試(乃至刪除并重新關注賬號)中也沒有看到該頁面,不過重點是我們得到了臨時令牌,如下圖右所示。右圖實際是http://johnson0001-developer-edition.ap1.force.com/oauth2test頁面,用戶同意授權后跳轉到(或者我遇到的實際情況是直接跳轉)到redirect_uri/?CODE&state=STATE。若用戶禁止授權,則重定向后不會帶上code參數,僅會帶上state參數redirect_uri?state=STATE。

另外特別需要說明的是,code作為換取access_token的臨時票據,每次用戶授權帶上的code都不一樣,code只能使用一次,5分鐘未被使用自動過期。

Autorisation Web OAuth2.0 de la série de développement Force.com WeChatAutorisation Web OAuth2.0 de la série de développement Force.com WeChat

通過Code換取網頁授權access_token:

首先請注意,這里通過code換取的網頁授權access_token,與基礎支持中的access_token不同。公眾號可通過下述接口來獲取網頁授權access_token。如果網頁授權的作用域為snsapi_base,則本步驟中獲取到網頁授權access_token的同時,也獲取到了 openid,snsapi_base式的網頁授權流程即到此為止。 獲取code后,可以通過以下接口獲取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

這里的CODE即為通過前面方式獲得的臨時令牌(票據),參數的具體說明如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

將URL直接輸入到瀏覽器地址欄即可得到返回數據,當然真實場景里更多通過后臺代碼來請求,正確返回時的JSON數據包如下:

{
   "access_token":"ACCESS_TOKEN",
   "expires_in":7200,
   "refresh_token":"REFRESH_TOKEN",
   "openid":"OPENID",
   "scope":"SCOPE"
}

參數的具體說明如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

錯誤時微信會返回JSON數據包如下(示例為Code無效錯誤):

{"errcode":40029,"errmsg":"invalid code"}


在本例中獲得的access_token實例如下:

{"access_token":"OezXcEiiBSKSxW0eoylIeMEUA_AZuBDY8AO0IIw270MMsvemqLvgx1HqemeXIZfzXW2d6yHCPy9cA1yHZ1jHCkwlH5Ct5Jfa1jOQm88M9LzU_O8BCKMNhN7yLlHJfOFLuf4lLTNGOOsoWYxQzYVNGw","expires_in":7200,"refresh_token":"OezXcEiiBSKSxW0eoylIeMEUA_AZuBDY8AO0IIw270MMsvemqLvgx1HqemeXIZfz_Vj5pJZlv2V5wK9EzWmxQmM07cqIAwMXOdqzlQs-NY4hiyENP4WhO4Twpko-3iY_pAPZRnGGmAVt3DirZaWIyg","openid":"ou-37t936RNZEcW0mI75RN2pdxkc","scope":"snsapi_userinfo"}

可以看到上面access_token的默認失效時間是7200秒,也就是2小時,當access_token超時后,可以通過refresh_token進行刷新,refresh_token擁有較長的有效期(7天、30天、60天、90天),當refresh_token失效后,需要用戶重新授權,簡化理解起見,我們在本文的最后再介紹相關技術。

拉取用戶信息(需Scope為snasapi_userinfo):

通過access_token獲取用戶信息的接口如下,使用GET方法:

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

參數具體說明如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

本例的URL如下:

https://api.weixin.qq.com/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeMEUA_AZuBDY8AO0IIw270MMsvemqLvgx1HqemeXIZfzXW2d6yHCPy9cA1yHZ1jHCkwlH5Ct5Jfa1jOQm88M9LzU_O8BCKMNhN7yLlHJfOFLuf4lLTNGOOsoWYxQzYVNGw&openid=ou-37t936RNZEcW0mI75RN2pdxkc&lang=zh_CN

輸入瀏覽器訪問即可得到相應的用戶信息:

{"openid":"ou-37t936RNZEcW0mI75RN2pdxkc","nickname":"王浩","sex":1,"language":"zh_CN","city":"松江","province":"上海","country":"中國","headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/lqsZNvDqcXe8nBKHBPsp9YHuZXPtkzOD1uq3r3xxDicuDLKGlicNd1b371ODnn9xNBB9y9ChBSfL7tuX6m9FS8koY9Ex1iaJRDI\/0","privilege":[]}

刷新access_token:

可以通過前面在“通過Code換取網頁授權access_token”小節(jié)中獲得的refresh_token來調用刷新Token接口獲取更新的access_token,微信在API文檔里介紹refresh_token擁有較長的有效期(7天、30天、60天、90天),但實際微信的refresh_token的有效期是多長沒有具體說明,如果有具體經驗的朋友歡迎分享。微信刷新access_token的接口如下:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

接口的具體參數定義如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

正確時返回的JSON數據包如下:

{
   "access_token":"ACCESS_TOKEN",
   "expires_in":7200,
   "refresh_token":"REFRESH_TOKEN",
   "openid":"OPENID",
   "scope":"SCOPE"
}

數據包的具體定義如下:

Autorisation Web OAuth2.0 de la série de développement Force.com WeChat

錯誤時微信會返回JSON數據包如下(示例為Code無效錯誤):

{"errcode":40029,"errmsg":"invalid code"}

更多Autorisation Web OAuth2.0 de la série de développement Force.com WeChat相關文章請關注PHP中文網!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276