问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

微信电脑版通过移动端确认登陆这中间的技术是如何实现的

发布网友 发布时间:2022-04-06 02:51

我来回答

2个回答

懂视网 时间:2022-04-06 07:13

如今微信已经成了人人必备的社交工具,在会员平台如果可以用微信登录,会大大增加用户和平台之间的粘合度。这次就带领大家实现移动端微信授权登录。

1、网页端微信登录必须在微信中实现。

和PC端扫码登录不同,移动端网页无法使用普通浏览器微信授权登录,必须在微信中使用,这是必须要明确的。

2、准备工作。

我们需要有一个已经认证的微信服务号,这是必备条件。我们打开登录微信公众平台,找到“接口权限”。

QQ截图20200908175511.jpg

我们已经有了获取网页用户信息的权限,如果服务号没有认证的话,这个权限是没有的。

之后点击修改,配置需要微信授权的域名。注意授权需要写www.abc.com,不能带http,错误写法:http://www.abc.com。

3、微信授权获取微信用户信息

准备工作做好后,我们就可以按照文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 来一步步进行了。

第一步:用户同意授权,获取code。

public function wechat_login(){

  $appid='wxff5b68b041a4fb11';//公众号基本配置中获取
  $redirect_uri='http://a.xx.cn/mobile/user/weixin_m.html';//用户授权后跳转处理的地址
  $url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
  return redirect($url);
 }

我们引导用户去访问wechat_login这个方法,这里需要准备两个参数,appid在公众号基本配置中获取,redirect_uri是微信用户授权后的处理地址回调,这里一定要写http绝对地址,外网能够访问的地址。

第二步:通过code换取网页授权access_token

我们建立第一步的回调方法weixin_m。我们先打印code,检测我们是否能够获取,这也是程序调试的常用步骤,这步骤没问题再进行下面的。

public function weixin_m(){
  $code=input('get.code');
  halt($code);
}

QQ截图20200908180412.jpg

接下来我们再获取access_token。

public function weixin_m(){
  $code=input('get.code');
  $appid='wxff5b68b241a4fb11';//公众号基本配置中获取
  $appsecret='412a24b17e61317d589b8bf92f374ffc';
  $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";
  $res=json_decode(file_get_contents($url),true);//json转数组
}

我们去请求地址获取access_token,其中需要三个参数:appid、appsecret、code。appsecret同样也是在公众号基本配置中获取。

获取后微信默认返回是json格式,所以我们把json转成数组,这样就方便进行操作。

打印数组如下:

array:6 [
  "access_token" => "37_3RRxoQZKuECSpCfGMYLcO-1ZXu_uhTkdku_m29u4XfSq9-Ve_0Fn5_K6vUBpkiL1iXRpEBepOfeMZZA7TGm-bg"
   "expires_in" => 7200
  "refresh_token" => "37_CjmxjzqBCqiIVH3aKjR22RQniCr_7DYYJYgodMONV5822FnfKuq0VwOS0B9dfucHf6GxTjXbczruwS5NIkGAWw"
   "openid" => "oaq-51XAHNaj9qUxVwYu3-elVTa0"
   "scope" => "snsapi_userinfo"
   "unionid" => "oO0Bhv6ZSw4ZYV60CMzi2p4eUO7s"
  ]

这样我们就成功获取到了access_token和openid。

第三步:拉取用户信息(需scope为 snsapi_userinfo)

我们依然按照文档去请求地址:

 $user_url="https://api.weixin.qq.com/sns/userinfo?access_token=".$res['access_token']."&openid=".$res['openid']."&lang=zh_CN";  
 $userData=json_decode(file_get_contents($user_url),true);//json转数组  
 halt($userData);

请求的时候需要携带我们在第二步中获取的access_token和openid两个参数。微信返回仍然是json格式,我们再次把json转成数组。

打印数组如下:

QQ截图20200908181044.jpg

获取到用户数据后,我们就可以对数组入库或者其他操作了。

截至到这里“移动端微信授权登录”就已经介绍完了,整体难度不大,也需要大家耐心读文档,文档是最好的老师。大家加油!

热心网友 时间:2022-04-06 04:21

电脑登陆时会访问服务器,当服务器里面检测到时,向移动客户端发送登陆请求,收到移动客户端的允许确认信息后,服务器再允许最电脑端登陆,大概流程就是这样。
具体的技术问题,不知道你想了解什么?追答亲,我的回复还让你满意吗?

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在公交车上实施扒窃,会受到怎样的处罚? 交通违法行为识别 公交车扒窃会如何处罚? 郑州鱼缸清洗找哪家公司做得比较好? 郑州有没有专业维修鱼缸,清洗鱼缸的? ...的鱼缸,放在办公室养些鱼水草之类的。郑州哪里有卖这样的鱼缸。_百... 我们公司想要定做个观赏鱼缸,不知道郑州哪家公司最专业? 谁知道郑州生态鱼缸定做哪家做的效果最好? 联想电脑启用无线功能的功能键? 笔记本电脑怎么连接网笔记本电脑怎样连接无线网 用thinkphp微信开发,微信上的URL怎么写才能配置成功 有个疑问,thinkphp6为啥要用多应用呢?服务器多开个网站不行吗? 刚下完游戏一开就说无法正常启动(0xc0000142)是怎么回事 求大神解决 windows启动失败 未能成功启动状态0xc00000e9怎么办 win7开机出错提示0xc00000e9 电脑打不开机 状态0xc00000e9 系统注册表文件丢失或损坏, 得关机歇几分钟才能开机 什么问题 电脑错误代码0xc00000e9无法开机 电脑0xc00000e9 发生异常I/0错误 有大神知道怎么解决吗? 电脑开机不能进入系统,提示0xc00000e9错误,请问大神如何解决? Win7无法启动“状态:0xc00000e9”该怎么办? 类似协同办公的大家可以在一个空间里作图的系统? Teambition 团队成员介绍的页面实现思路是怎么样的 teambition链接失效 teambition可以工作日报吗 哪个团队协作工具好?明道,teambition,tower teambition删除示例后闪退 teambition怎么添加成员 teambition的任务谁都可以删除吗 Checking MySQL Database Failed! MySQL Database cannot be used. sublime text怎么格式化PHP代码 如何实现移动端登录页面下方的第三方登录的布局 如何登录tplink 路由器网址 TP-LINK 型号:TL-WR800N 300M迷你路由器 ,设置了,笔记本能上网,手机也能检测到,但是无法登陆QQ或微信 一个微信帐号怎么同时在两个手机上同时登录 怎样在另一个手机上登录同一个? 如何使用Teambition更新产品 teambition与erp能集成吗 公司考虑需不需要引进团队协作的软件,具体有哪些有利的地方? 我公司在用的teambition,但我觉得好像不是特别合适,有没有功能齐全、体验感好一些的项目管理软件推荐? 现在的企业协作软件这么多,teamin作项目管理团队协作工具上的优势是什么,teambition,worktile怎么样? teambition收费吗 请问Worktile、Teambition和侎佧这三款协同办公管理软件哪个更好用? 程序无法正常启动0xc000007b怎么解决 win10安装后出现:cmd.exe-应用程序错误错误代码:(0xc000007b)怎么解决? 打开ug8.0时出现无法正常启动0xc000007b是什么原因? 电脑开不了机显示状态0xc0000098怎么办呢各位大神? 重装系统出现0xc0000098怎么解决 0xc00000098不能开机 电脑开机0xc0000098不用U盘怎么处理? 重装系统出现0xc0000098怎么解决?