1.先获取openid
uni.login({ success: (res) => { console.log({ code: res.code }); } })
2.获取头像和昵称
html:
<view> <view class="asdf"> <button open-type="chooseAvatar" @chooseavatar="chooseAvatar"> <image :src="image" class="imageAsdf" /> </button> </view> <view class="name"> <view class="name_text"> 昵称 </view> <view> <input v-model="name" class="weui-input" placeholder="请输入昵称" /> </view> </view> <view class="enter"> <button @click="formSubmit">登录</button> </view> </view>
js:
export default { data() { return { image: '', openid: '', status: 1, name:'' } }, methods: { //用户头像 chooseAvatar(e) { console.log(e.detail.avatarUrl); let headimg = e.detail.avatarUrl // 存储用户头像 uni.setStorageSync('headimg', headimg) this.image = e.detail.avatarUrl uni.login({ success: (res) => { console.log({ code: res.code }); console.log(res.code); uni.request({ url: '', data: { code: res.code, }, success: (val) => { console.log(val.data.openid); // console.log(val.data.openid); uni.setStorageSync('openid', val.data.openid) } }) }, }) }, //用户名 formSubmit() { let that = this; let nickname = that.name console.log(that.name); if (nickname == "" || uni.getStorageSync('headimg') == "") { uni.showToast({ title: '请输入完整信息', icon: "none" }) } else { // 存储用户名称 uni.setStorageSync('nickname', nickname) uni.request({ url: '', //仅为示例,并非真实的接口地址 data: { openid: uni.getStorageSync('openid'), //唯一凭证 NickName: nickname, //昵称 HeadUrl: uni.getStorageSync('headimg'), //头像 sex: that.status }, success(res) { if (res.data.status == 2) { console.log(res.data) uni.setStorageSync('userid', res.data.userid) uni.showToast({ title: '登录成功', icon: 'success', duration: 2000 }) uni.switchTab({ url: '/pages/index/index', success: (res) => {}, fail: (res) => {}, complete: (res) => {}, }) } else { uni.showToast({ title: '请重新登录', icon: 'error', duration: 2000 }) } } }) } } } }