当前位置:首页 » 编程语言 » 微信授权登录php

微信授权登录php

发布时间: 2023-01-07 20:59:57

A. 微信怎么给其他人授权登录

方法如下:
1、点击个人信息与权限
在微信设置界面,找到个人信息与权限选项并点击一下。
2、点击授权管理
进入后找到页面的“授权管理”选项。
3、点击授权操作
选择合适的应用进行授权操作即可。

B. 微信网页授权基本步骤

一、首先在微信公众平台配置授权回调地址(“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名);

二、关于网页授权的两种scope的区别说明

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

三、关于网页授权access_token和普通access_token的区别

1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

四、具体而言,网页授权流程分为四步:

1、 引导用户进入授权页面同意授权,获取code

    1)、 scope为snsapi_base

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdap

ter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_bas

e&state=123#wechat_redirect

scope为snsapi_userinfo

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=

code&scope=snsapi_userinfo&state=STATE#wechat_redirect

code说明 : code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期 。

2、 通过code换取网页授权access_token

首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。

尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

请求方法

获取code后,请求以下链接获取access_token:  https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

3、 刷新access_token(如果需要)

由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

请求方法

获取第二步的refresh_token后,请求以下链接获取access_token:

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

4、 拉取用户信息(需scope为 snsapi_userinfo)

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

请求方法

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

C. 微信如何授权登录

1. 该应用支持微信登录:找到手机设置,点开应用权限,找到该应用,点权限,找到微信登录权限,打开,退出重回应用尝试微信登录
2. 该应用不支持微信登录:暂时无法用微信登录,可以去该应用问题反馈处反馈,希望添加微信登录功能,或者去到应用商店评价该应用

其他

1. 可以登录游戏,网站等等。
2. 打开手机微信软件,点击“发现”界面之后,会看到一个“游戏中心”的选项,点击游戏中心,进入游戏中心后再点击右上角的“…”
3. 进入游戏管理后点击想要授权的游戏,如示范的是经典飞机大战。

4. 在游戏设置栏里点击游戏关系,最后再点确定授权该游戏,这样就成功在微信上对该游戏授权了。

扩展

微信是腾讯公司于2011年1月21日推出的一款通过网络快速发送语音短信、视频、图片和文字,支持多人群聊的手机聊天软件。用户可以通过微信与好友进行形式上更加丰富的类似于短信、彩信等方式的联系。微信软件本身完全免费,使用任何功能都不会收取费用,微信时产生的上网流量费由网络运营商收取。

功能特点

1、支持发送语音短信、视频、图片(包括静/动态表情)和文字

2、支持多人群聊;

3、支持查看所在位置附近使用微信的人;

5、摇一摇功能结识世界各地的朋友;

4、支持腾讯微博、QQ邮箱、漂流瓶、语音记事本、QQ离线消息等功能;

5、支持视频聊天;

6、支持电脑网页登录;

7、把照片分享到朋友圈,可与好友进行互动;

8、热点新闻资讯;

9、随时随地收/写QQ邮件;

10、视频聊天。

D. 微信小程序用户授权登录

1、appid: 微信小程序/公众号的唯一凭证,即 AppID。

获取途径:可在“微信公众平台 - 设置 - 开发设置”页中获得。(需要已经成为开发者,且帐号没有异常状态)

用途:小程序的 AppID 相当于小程序平台的一个身份证,会在很多场景中使用,比如小程序的登录、授权等

2、openID: openID 是微信生态下 应用的唯一标识 , ,即同一个用户在不同的小程序下的openid是不同的。

获取途径:调用 auth.code2Session 接口,通过code(登录凭证,调用wx.login获取)+appid+appsecret(小程序密钥,获取方式和appid一样)可以换取openid,即 静默授权。

用途:用于在开发者系统中标识用户信息

3、UnionID:UnionID 是微信生态下 用户的唯一标识 ,换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。

获取途径:绑定了开发者帐号的小程序,可以通过以下途径获取 UnionID。

1)开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户授权。

2)小程序端调用云函数时,可在云函数中通过 Cloud.getWXContext 获取 UnionID。

用途:标识同一个微信开放平台下的用户,可用于去重判断

也就是我们常用的微信移动端/PC端之间的扫码登录,PC端用微信扫码登录,微信移动端确认授权登录后,应用可以从微信拿到用户的open id或union id,将微信获取的用户信息与自己账户体系中的用户身份进行关联;

需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关注相关微信公众号等都可以获取。

1、静默授权不需要用户确认,只需要用户访问某个网页,属于嵌套在普通网页里的授权形式,但是只能获取到用户的唯一标示openid和union id,无法拿到用户的微信头像、微信名称等个人信息,对于用户的简单认证还是很有用的。

2、静默授权的过程:

1)调用 wx.login() 获取 临时登录凭证code

2)调用 auth.code2Session 接口,换取用户唯一标识 openID

3)调用本地后台服务,将 openID 映射到本地的 userId

微信开发文档-小程序登录流程

参考文章:

1、 【微信小程序用户授权登录】

2、 微信第三方登录(静默授权和非静默授权)

3、 openid会变吗?微信小程序开发中的appid、openid、unionid使用总结

E. 微擎微信公众号授权登录反复登录跳转修复

因为公众号修改了获取用户基本信息的返回字段内容,导致微擎获取用户基本信息时无法获取到nickname,而需要反复跳转。并且特别是电脑端打开都会弹出授权弹窗

通过修改  framework/model/mc.mod.php 

mc_oauth_account_userinfo 函数,以下片段

if (intval($_W['account']['oauth']['level']) < 4 && !in_array($_W['account']['oauth']['level'], array(ACCOUNT_TYPE_APP_NORMAL, ACCOUNT_TYPE_APP_AUTH, ACCOUNT_TYPE_WXAPP_WORK))) { return error(-3, '公众号非认证服务号, 无法获取用户信息.');}
这个判断以下内容改为下方

if (!empty($_SESSION['openid']) && intval($_W['account']['level']) >= 3) {

$oauth_account = WeAccount::createByUniacid();

$userinfo = $oauth_account->fansQueryInfo($_SESSION['openid']);

//查询用户信息,用于判断是否已保存在粉丝记录

$fan = mc_fansinfo($_SESSION['openid']);

//获取到的用户基础信息未出错,且不为空

if(empty($fan) && !is_error($userinfo) && !empty($userinfo) && !empty($userinfo['openid']) ){

        $record = array();

        $record['updatetime'] = TIMESTAMP;

        $record['nickname'] = '';     
       $record['tag'] = base64_encode(iserializer($userinfo));
        $record['openid'] = $_SESSION['openid'];        $record['acid'] = $_W['acid'];

        $record['uniacid'] = $_W['uniacid'];       
        $record['unionid'] = $userinfo['unionid'];

      $record['user_from'] = $_W['account']->typeSign == 'wxapp' ? 1 : 0;

       pdo_insert('mc_mapping_fans', $record);

}

//获取的用户信息不为空,且已经存在昵称。

else if (!is_error($userinfo) && !empty($fan) && !empty($fan['nickname']) && is_array($userinfo) ){

    //返回粉丝,已有的粉丝信息  ==》这么改之后,系统里的粉丝用户信息就没办法实时最新了。腾讯修改返回信息规则之后只有使用,弹窗授权才能获取到用户的昵称、头像

    $userinfo['nickname'] = stripcslashes($fan['nickname']);

$userinfo['avatar'] = $fan['headimgurl'];

$_SESSION['userinfo'] = base64_encode(iserializer($userinfo));

    $record = array(

'updatetime' => TIMESTAMP,

'follow' => $userinfo['subscribe'],

'followtime' => $userinfo['subscribe_time'],

'unionid' => $userinfo['unionid'],

'tag' => base64_encode(iserializer($userinfo))

);

//更新粉丝的订阅 状态信息

pdo_update('mc_mapping_fans', $record, array('openid' => $_SESSION['openid'], 'uniacid' => $_W['uniacid']));

if (!empty($fan['uid']) || !empty($_SESSION['uid'])) {

$uid = intval($fan['uid']);

if (empty($uid)) {

$uid = intval($_SESSION['uid']);

}

$member = mc_fetch($uid, array('nickname', 'gender', 'residecity', 'resideprovince', 'nationality', 'avatar'));

$record = array();

if (empty($member['nickname']) && !empty($userinfo['nickname'])) {

$record['nickname'] = stripslashes($userinfo['nickname']);

}

if (empty($member['avatar']) && !empty($userinfo['headimgurl'])) {

$record['avatar'] = $userinfo['headimgurl'];

}

if (!empty($record)) {

pdo_update('mc_members', $record, array('uid' => $uid));

cache_build_memberinfo($uid);

}

}return $userinfo;

}

}

替换到这个地方
$state = 'we7sid-' . $_W['session_id'];
$_SESSION['dest_url'] = urlencode($_W['siteurl']);

以上作为记录,备忘。

F. php如何通过cookie获取微信授权登录前页面URl

PHP 的 $_COOKIE 变量用于取回 cookie 的值。
例子:

在下面的实例中,我们取回了名为 "user" 的 cookie 的值,并把它显示在了页面上:
<?php
echo$_COOKIE["user"];
print_r($_COOKIE);
?>

同时可以用setcookie() 函数设置 cookie。
语法:

setcookie(name, value, expire, path, domain);

在下面的例子中,我们将创建名为 "user" 的 cookie,并为它赋值 "Alex Porter"。我们也规定了此 cookie 在一小时后过期:

<?php
setcookie("user","AlexPorter",time()+3600);
?>

当删除 cookie 时,您应当使过期日期变更为过去的时间点。
删除的实例:

<?php
//
setcookie("user","",time()-3600);
?>
具体而言,登录授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)

G. php结合app微信登录 php需要做什么操作

1、app单独做微信授权登录获取到unionid
2、app根据unionid请求服务器(php),服务器判断是否有该会员,如果没有就做注册,如有已经有了直接就返回会员信息
3、就是app请求的时候尽量吧app的平台信息(比如安卓或者ios)一起发给服务器。服务器好做登录记录

H. 请问一下PHP如何实现微信扫码登录PC网站

php 微信扫码 pc端自动登陆注册 用的接口scope 是snsapi_userinfo,微信登陆一个是网页授权登陆,另一个是微信联合登陆

I. 怎么打开微信登录授权 如何打开微信登录授权

1、如果想要打开微信授权登录界面的话,就必须要先打开电脑上的微信一栏。

2、然后就需要再点击登录微信。

3、然后接着就会发现,手机上会跳出来一个界面。

4、然后就能看到该页面,就是微信授权登录界面了。

J. PHP如何实现微信网页授权

具体而言,网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持unionid机制)

热点内容
数据库逻辑存储结构 发布:2025-07-10 09:26:56 浏览:918
密码编译找规律 发布:2025-07-10 09:18:10 浏览:512
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:893
服务器搭建需要哪些东西 发布:2025-07-10 09:15:23 浏览:801
无限密码怎么改 发布:2025-07-10 09:14:32 浏览:104
coc按键精灵脚本 发布:2025-07-10 09:12:40 浏览:313
excel表格ftp函数 发布:2025-07-10 09:05:50 浏览:276
u2game的解压密码 发布:2025-07-10 09:05:14 浏览:597
c语言编译器ide苹果下载 发布:2025-07-10 09:05:13 浏览:295
andftp端口 发布:2025-07-10 08:57:04 浏览:607