Laravel/php开发网站微信扫码登录
Song •
1566 次浏览 •
0个评论 •
2021年08月06日
一、申请微信网站登录
前往微信微信开发平台申请网站登录;
记得授权域名填写基础网址,否则可能出现redirect_uri 参数错误
二、编写前端代码
参考官方文档网站应用微信登录开发指南 ,我们编写前端代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>微信登录页面</title>
<style>
body{
background-color: rgb(51, 51, 51);
}
</style>
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
</head>
<body>
<div id="obj" style="text-align: center">
</div>
<script type="text/javascript">
var obj = new WxLogin({
self_redirect:true,
id:"obj",
appid: "你的APPID",
scope: "snsapi_login",
redirect_uri: "URLEncode(回调网址)",
state: "",
style: "white",
href: ""
});
</script>
</body>
</html>
解析Code获取基本信息
手机扫描二维码以后会访问我们之前设置的回调地址,可以得到请求token
的code
,拿到token
以后就可以通过token
去获取用户的基本信息:
1、通过code获取access_token
通过code获取access_token
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
- appid 是应用唯一标识,在微信开放平台提交应用审核通过后获得
- secret 是
应用密钥AppSecret
,在微信开放平台提交应用审核通过后获得 - code 是
填写第一步获取的code参数
- grant_type
填authorization_code
2、授权后获取用户信息
参考官方文档 授权后接口调用(UnionID)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
- ccess_token 是 调用凭证
- openid 是 普通用户的标识,对当前开发者帐号唯一
- lang 否 国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为en
{
"openid":"OPENID",
"nickname":"NICKNAME",
"sex":1,
"province":"PROVINCE",
"city":"CITY",
"country":"COUNTRY",
"headimgurl": "https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",
"privilege":[
"PRIVILEGE1",
"PRIVILEGE2"
],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
常见错误
1、redirect_uri 参数错误
- 可能你在认证配置页填写的不是基础域名
- redirect_uri必须URLEncode转换
-
laravel中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
热门文章
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
-
Zerotier+Moon+Nginx实现内网穿透搭建网站 2024-08-23
更多相关好文