`
lzqustc
  • 浏览: 211008 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

微信内网页开发 - 授权登录

阅读更多

接口文档:http://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html

 

一、开发者需要先到公众平台官网中的开发者中心页配置授权回调域名,也就是授权链接里面的redirect_url指向的服务器域名。

比如你的REDIRECT_URI是 http://www.iteye.com/cgi-bin/wechat.pl ,那么回调域名就是 www.iteye.com

 

二、举例:公众号底部设置一个菜单:登录, 它的链接可以如下:

1、静默授权(不需要用户手动点击同意)SCOPE是snsapi_base,只能获取用户的openid

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://www.iteye.com/cgi-bin/wechat.pl&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect

 

2、SCOPE是snsapi_userinfo,用来获取用户的基本信息的。但需要用户手动同意(无须关注),就可在授权后获取该用户的基本信息。

 

三、如果用户同意授权,微信服务器将重定向到redirect_uri,也就是http://www.iteye.com/cgi-bin/wechat.pl/?code=CODE&state=STATE,也就是将code返回给服务端的CGI脚本,脚本就可以获取openid(用户基本信息)

if ($cgi->param('code')) {

my $code = $cgi->param('code');

my $state = $cgi->param('state');

my $wechat = GetOpenidToken($code, $state);

my $openid = $wechat->{openid};

my $token = $wechat->{access_token};

my $unionid = $wechat->{unionid};

write_log("code=$code, openid=$openid, token=$token, unionid=$unionid\nstate=".$state."\n");

 

$redirect_url = "http://xxxx/test.html?openid=$openid&state=".$state;

print $cgi->redirect($redirect_url);

}

sub GetOpenidToken {

my $code = $_[0];

my $state = $_[1];

//通过code换取网页授权access_token

my $url =  "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$APPID."&secret=".$SECRET."&code=".$code."&grant_type=authorization_code"; 

my $json = JSON->new();

my $ua = LWP::UserAgent->new();

#runging curl,get this json respons

my $req = HTTP::Request->new('POST', $url); 

my $response = $ua->request($req);

 

//如果网页授权作用域为snsapi_userinfo,则可以通过access_token和openid拉取用户信息了。

my $url2 =  "https://api.weixin.qq.com/sns/userinfo?access_token=".$ACCESS_TOKEN."&openid=".$OPENID."&lang=zh_CN";

}

 

关于state

重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节。

服务端获得用户信息后可以根据 不同的state值 来跳转到不同的H5页面

 

关于UnionID机制

1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号(H5应用)、移动APP应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。

2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。

 

 

 关于移动APP授权登录

       现在大多数移动APP都支持通过微信直接登录应用,无需注册账号,那么服务端一般就会通过获取用户的微信信息(unionid, 微信昵称,头像,性别等)来创建用户账号。

       流程一般是:APP前端调用微信提供的SDK授权登录,获得用户的access_token,openid然后传给服务端,服务端通过access_token和openid拉取用户信息,然后创建账号。

 

 

 

 

分享到:
评论

相关推荐

    js微信网页授权登录获取详细信息

    本文将深入探讨js微信网页授权登录以及企业微信授权登录的详细步骤、原理和注意事项。 1. **微信网页授权登录流程** 微信网页授权登录通常分为四个主要步骤: - **引导用户跳转**:在网页中,通过JS代码调用微信...

    java微信开发API解析(七)-网页开发-微信网页授权

    微信网页授权是微信开放平台提供的一种接口,用于实现用户在第三方网站或应用上的一键登录,以及获取用户的微信基本信息。这个过程涉及到OAuth2.0授权框架,它为安全地获取用户信息提供了标准化流程。 首先,我们要...

    微信公众号开发-Java-代码类(网页授权 事件处理 jssdk分享 加密处理)

    微信公众号开发-Java-代码类(网页授权 事件处理 jssdk分享 加密处理)

    微信内网页开发工具包(微信JS-SDK).mp4.zip

    微信内网页开发工具包,通常被称为微信JS-SDK(JavaScript Software Development Kit),是微信官方推出的一个强大工具,专为在微信内置浏览器中运行的网页应用提供功能支持。它允许开发者利用微信提供的各种API接口...

    Python-weixinlogin微信网页授权实现扫码登录

    本文将深入探讨如何使用Python来实现微信网页授权的扫码登录功能。这个过程涉及到的主要知识点包括OAuth2.0授权框架、微信开放平台API以及Python的请求库。 微信网页授权是微信提供的一种服务,允许第三方网站通过...

    微信公众号网页授权demo

    基于SpringBoot + Mybatis + Themeleaf的微信公众号网页授权demo代码;使用时需修改weinxinutil中的配置为自己申请的测试公众号

    微信公众号零基础开发视频--网页授权获取用户基本信息

    微信公众号零基础开发视频--网页授权获取用户基本信息,零基础视频介绍

    Python-flask-微信网页授权实现扫码登录.zip

    在本文中,我们将深入探讨如何使用Python的Flask框架与微信网页授权接口集成,实现扫码登录功能。这个过程涉及到OAuth2.0授权协议、微信开放平台的API接口以及Flask框架的应用开发。以下是对实现这一功能所需关键...

    微信网页开发授权登录PHP

    微信网页开发授权登录PHP是一种常见的应用场景,特别是在移动互联网时代,许多网站和应用为了提供更便捷的服务,会通过微信平台进行用户身份验证。本教程将详细讲解如何利用PHP、MySQL和CURL技术实现这一功能。 ...

    微信小程序开发-同城黑卡案例源码.zip

    微信小程序是一种轻量级的应用开发平台,专为在微信内运行而设计,无需安装即可使用,为用户提供了便捷的服务体验。"同城黑卡"是一个常见的生活服务类小程序案例,通常包含了会员特权、优惠活动、积分系统等功能,...

    微信小程序开发-HotApp云笔记案例源码.zip

    微信小程序是一种轻量级的应用开发平台,允许开发者构建无需安装即可使用的应用程序,它介于传统APP和网页应用之间,提供了丰富的API和组件,使得开发更为便捷。 首先,我们需要了解微信小程序的基础知识。这包括它...

    微信小游戏开发-捡红包 前端代码

    通过微信登录授权获取用户信息,实现个性化体验;利用微信的本地存储功能,保存用户的游戏状态,以便下次继续游玩。 总的来说,这个"捡红包"的微信小游戏实例涵盖了前端开发的多个重要知识点,对于想要学习微信小...

    微信小程序开发-芒果TV案例源码.zip

    微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用体验。在这个“微信小程序开发-芒果TV案例源码.zip”中,我们很显然会深入探讨如何利用微信小...

    基于ThinkPHP3.2.3的微信OAuth2.0微信网页授权

    在IT行业中,微信OAuth2.0微信网页授权是一种常见的用户身份验证机制,广泛应用于微信相关的Web应用开发。这里我们深入探讨一下基于ThinkPHP3.2.3框架实现这一功能的相关知识点。 1. **OAuth2.0协议**:OAuth2.0是...

    php微信网页授权登录类

    这是个用php写的微信网页授权的登录类。。。。。。。。

    .NET Core 企业微信网页授权登录.doc

    .NET Core 企业微信网页授权登录 .NET Core 企业微信网页授权登录是指使用微信企业号的 OAuth2 授权机制来实现网页登录的功能。在这个过程中,需要获取企业的唯一标识 corpid 和访问密钥 secret,然后使用这两个...

    H5微信小游戏源码-微信游戏首页模板.zip

    其次,微信小游戏是微信生态中的一种轻量级应用形式,用户无需下载安装即可直接在微信内玩。它们通常基于HTML5、CSS3和JavaScript等Web技术开发,结合微信开放的API接口,实现与微信的深度集成,例如分享、支付等...

    微信小程序开发-面包旅行:界面设计,文本展示案例源码.zip

    微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,为用户提供便捷的服务和丰富的交互体验。在这个“微信小程序开发-面包旅行:界面设计,文本展示案例源码.zip”压缩包中,我们可以深入...

    详解vue微信网页授权最终解决方案

    主要介绍了 详解vue微信网页授权最终解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    微信小程序设计-今日头条.zip

    1. 微信小程序基础概念:小程序是微信平台推出的一种全新应用形态,它结合了H5网页的便捷性和原生应用的高性能。开发者可以通过微信提供的开发工具和API(应用程序接口)进行编程,实现类似原生应用的功能。 2. ...

Global site tag (gtag.js) - Google Analytics