<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, viewport-fit=cover">
<title>获取微信授权的code</title>
<style>
* {
padding: 0;
margin: 0;
border: 0;
box-sizing: border-box;
}
body {
width: 100vw;
min-height: 100vh;
padding: 10px;
}
#button {
font-size: 20px;
background-color: #eee;
border-radius: 5px;
padding: 5px 20px;
}
#code {
color: #333;
font-size: 30px;
width: 100%;
resize: none;
border: 1px solid #eee;
padding: 5px;
line-height: 1.5;
}
#type {
line-height: 1.5;
margin: 20px 0;
}
#type.openid .userinfo {
display: none;
}
#type.userinfo .openid {
display: none;
}
</style>
</head>
<body>
<button id="button">切换</button>
<div id="type">
<span class="openid">只获取openid</span>
<span class="userinfo">获取userinfo</span>
</div>
<textarea type="text" id="code"></textarea>
<script>
const util = {
query: name => {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return decodeURI(r[2]);
return null;
},
}
</script>
<script>
(function () {
const config = {
appId: "wx00e*****123" // 填写你的APappId
}
const button = document.querySelector("#button")
const codeEle = document.querySelector("#code")
const typeEle = document.querySelector("#type")
typeEle.className = localStorage.getItem("scope") === "userinfo" ? "userinfo" : "openid"
button.addEventListener("click", function () {
console.log("click")
const scope = localStorage.getItem("scope")
if (scope === "userinfo") {
localStorage.setItem("scope", "openid")
typeEle.className = "openid"
} else {
localStorage.setItem("scope", "userinfo")
typeEle.className = "userinfo"
}
})
let code = util.query("code")
if (code) {
console.log(code)
codeEle.value = code
window.history.replaceState({}, document.title, 'index.html');
return
}
let state = encodeURI(util.query("state"))
if (state == "null") {
state = ""
}
const redirectUrl = encodeURIComponent(location.href.split("?")[0])
localStorage.setItem("redirectUrl", redirectUrl)
const scope = localStorage.getItem("scope") === "userinfo" ? "snsapi_userinfo" : "snsapi_base"
location.href =
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${config.appId}&redirect_uri=${redirectUrl}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`
})()
</script>
</body>
</html>

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部