Вход в мини-программу без нажатия на процесс входа
причина
В середине 18 лет я сделал небольшую программу, в то время я перешел на страницу входа и нажал позвонитьwx.getUserInfo, а потом обнаружил, что это апи отключено (хотя его все равно можно использовать), а потом использовать
<!-- 需要使用 button 来授权登录 -->
<button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo">授权登录</button>
<view wx:else>请升级微信版本</view>
Потому что в то время была нужна информация о пользователе, и тогда у этого API естьencryptedData
Свойства могут получать информацию.
Этот процесс можно было сделать, но это произошло неожиданно.
заключенное в тюрьму мышление
Когда новый апплет необходимо разработать во второй раз (2020 г.), также используется старый код,但是出现了个奇怪的问题。 有兴趣的可以看下面的[奇怪的问题]
Странный вопрос:
Из-за ограничений WeChat невозможно перейти на страницу входа, поэтому мне интересно, следует ли мне настроить всплывающее окно на домашней странице и авторизовать его, когда я нажимаю на него.
Однако, учитывая возможность отказа WeChat, я открыл статью на форуме разработчиков мини-программ.
Приложение не может перейти на страницу входа и философское мышление входа в апплет
Позже выяснилось, что для входа на самом деле не требуется всплывающее окно или страница авторизации. (если серверу не нужно сохранять информацию о пользователе)
обработать
Следующее изображение является официальным изображением апплета.щелкни меня, чтобы прыгнуть
код
Полный код app.js (входной файл апплета)
const loginDataKey = 'loginData'
//app.js
App({
onLaunch: function () {
const loginData = wx.getStorageSync(loginDataKey)
console.log('--loginData--')
console.log(loginData)
let toLogin = () => {
console.log('未登录,去登录..')
wx.showLoading({title: '登录中', icon: 'loading', mask: true})
wx.login({
success(res){
console.log('wx.login res')
console.log(res)
let success = () => {
console.log('登录成功')
let loginResponse = {"openid":"ooZAbwpdDdaZV_xiamianshi_mashaike"}
wx.setStorageSync(loginDataKey, loginResponse)
wx.hideLoading()
}
let fail = () => {
wx.hideLoading()
wx.showToast({
title: '登录失败,请重新打开小程序试试',
icon: 'none',
duration: 1e8
})
}
// TODO 发起网络请求
// 延时模拟请求登录成功
setTimeout(success, 500)
},
fail(err){
console.log(err)
wx.hideLoading()
wx.showToast({
title: '登录失败,请重新打开小程序试试',
icon: 'none',
duration: 1e8
})
}
})
}
// 未登录,去登录
if(!loginData){
toLogin()
// 已登录,但是微信session_key过期
}else{
wx.checkSession({
success () {
//session_key 未过期,并且在本生命周期一直有效
console.log('session_key 未过期')
},
fail () {
// session_key 已经失效,需要重新执行登录流程
console.log('session_key 已经失效,需要重新执行登录流程, 重新登录中')
toLogin()
}
})
}
},
globalData: {
userInfo: null
}
})
Процесс выглядит следующим образом
- Определите, следует ли входить в систему на основе локального хранилища
- Выполнен вход, чтобы определить, является ли он недействительным
- Недействительный или не авторизован для входа
- Войдите, чтобы показать тост
- получить информацию о магазине закрыть тост
основной
- wx.login, чтобы получить код
- Затем передайте код черезauth.code2SessionПолучить openid и unionid и т.д.
это то, что я прохожуauth.code2SessionПолучите скриншот openid (поскольку это тестовый номер, поэтому unionid отсутствует)
[unionid] — ключ к открытию счетов на других платформах.Если у вас только один апплет, он вам не нужен.
Эффект
разное
Просто отобразите аватар пользователя, псевдоним и т. д.
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
Ознакомьтесь с документацией по открытым данным
Об официальном уведомлении о входе в апплет
Предложения по настройке и оптимизации параметров входа в учетную запись пользователя в мини-программе {официальный}Существуют стандарты аудита, и обучение аудиторов основано на них.
В нем много голосов, а значит, юнионид получить нельзя.
Это можно увидеть в первую очередьОписание механизма UnionIDНо многие люди следуют за этим и не могут получить это, почему? ?
Wechat, я думаю, тоже должен нести вину, а 2 или 3 раньше не было. Сейчас это все еще не хорошо, потому что его нужно установить в фоновом режиме апплета -> связанные настройки -> привязанные к платформе разработки.
(Почему оно снова задействовано в платформе разработки? Вы не можете помолчать? Например, вы можете получить его, пока вы связаны с официальным аккаунтом. Что касается мобильного приложения, вы можете заставить его开放平台
возьми это)
Но эти студенты могут не увидеть эту статью~~
--над--