承認を取得する
アプレットプラグインで使用する場合は、ユーザー情報機能ページでユーザー認証を取得してから呼び出す必要があります
。WeChatはgetUserInfoインターフェースを正式に変更しているため、WeChatアプレットに入るとすぐに認証ウィンドウをポップアップすることはできません。 。ボタンで使用できるのはtype =のみです。getUserInfoをトリガーします。公式接続
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
WXML部分
<button class="button" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">
授权登录
</button>
JSパート
bindGetUserInfo(e) {
if (e.detail.userInfo == undefined) {
console.log("用户已取消授权");
} else {
console.log("用户授权成功!");
}
}
ユーザー情報
を取得するためのオープンタイプタイプ
getUserInfobindGetUserInfoバインドコールバック関数
クリック効果は以下の通りです
ログインプロセス
jsイベントは、ユーザーがアクティブにトリガーすることも、ライフサイクル関数に書き込むこともできます
// 获取用户信息
wx.getUserInfo({
// 成功回调
success: function (res) {
console.log(res.userInfo)
// 直接调用登录接口
wx.login({
// 超时时间设置
timeout:10000,
// 使用async await 代替 .then
success: async (result)=>{
// URL 为登录的接口 功能为 自动注册登录
let {
data} = await request("URL",{
// 是否自动注册
autoReg:true,
// wx.login() 返还的 code
code:result.code,
})
// 全局变量保存token
app.globalData.token = data.data.token
// 跳转至主页或会员页面
wx.switchTab({
url: 'url',
})
},
// 登录失败提示
fail: ()=>{
console.log('请求失败!可再次尝试');
},
});
}
})
ユーザーが許可されているかどうかを確認します
// 获取用户授权信息
wx.getSetting({
// 执行成功
success: resData => {
// 用户授权
if (resData.authSetting['scope.userInfo']) {
// 获取用户信息
wx.getUserInfo({
success: res => {
// 登录 更新信息
wx.login({
timeout: 10000,
success: async (result) => {
let {
data
} = await request("user/wxapp/login", {
code: result.code,
})
// 更新 token
this.globalData.token= data.data.token;
},
fail: () => {
},
});
}
})
} else {
console.log("未授权");
// 跳转至授权页
wx.redirectTo({
url: '../../package/pages/authorize/authorize',
})
}
}
})