对于许多小程序来说,登入功能就是必不可少的。用户须要登入就可以在小程序中采用个性化服务,也能够便利用户在相同设备间同步数据。本文将了解如何在小程序中同时实现登入功能,以及一些常用的登入问题和解决方案。
一、登入方式挑选
在研发小程序时,我们须要挑选适宜自己的登入方式。通常情况下,我们可以挑选以下几种方式:
1.账号密码登入
这种方式就是最常用的登入方式,用户输出用户名和密码即可登入。
2.微信登入
由于微信比较盛行,很多小程序都使用了微信登入方式。用户只须要许可即可登入,免职了繁杂的登记注册流程。
3.验证码登入
这种方式须要用户输出手机号码和验证码,可以增加一些蓄意登记注册的风险。
二、同时实现登入功能
1.账号密码登入
对于账号密码登入方式,我们须要在小程序中建立一个表单组件,用作用户输出账号和密码。在递交表单时,我们须要向后台传送一个HTTP命令,检验用户输出的账号和密码与否相匹配。
下面就是一个采用wx.request同时实现登入功能的示例代码:
```
wx.request({
url: 'https://api.example.com/login',
data: {
username: this.data.username,
password: this.data.password
},
method: 'POST',
success: function(res) {
// 登入顺利
wx.showToast({
title: '登入顺利',
icon: 'success'
})
// 将用户信息留存至本地
wx.setStorageSync('userInfo', res.data.userInfo)
// 重定向至首页
wx.navigateTo({
url: '/pages/index/index'
})
},
fail: function(res) {
// 登入失利
wx.showModal({
title: '登入失利',
content: '账号或密码错误'
})
}
})
```
2.微信登入
对于微信登入方式,我们须要在小程序中采用wx.login以获取用户的临时登入凭证code,然后将code发送到后台。后台通过code以获取openid和session_key,然后根据openid建立或更新用户信息。最后,后台将用户信息回到给小程序。
下面就是一个采用wx.login同时实现微信登入功能的示例代码:
```
wx.login({
success: function(res) {
if (res.code) {
// 传送code至后台
wx.request({
url: 'https://api.example.com/login',
data: {
code: res.code
},
method: 'POST',
success: function(res) {
// 将用户信息留存至本地
wx.setStorageSync('userInfo', res.data.userInfo)
// 重定向至首页
wx.navigateTo({
url: '/pages/index/index'
})
}
})
} else {
console.log('登入失利!' + res.errMsg)
}
}
})
```
3.验证码登入
对于验证码登入方式,我们可以采用第三方短信平台传送验证码。用户输出手机号码和验证码后,我们将手机号码和验证码发送到后台展开检验。
下面就是一个采用第三方短信平台同时实现验证码登入功能的示例代码:
```
wx.request({
url: 'https://api.example.com/login',
data: {
mobile: this.data.mobile,
code: this.data.code
},
method: 'POST',
success: function(res) {
// 将用户信息留存至本地
wx.setStorageSync('userInfo', res.data.userInfo)
// 重定向至首页
wx.navigateTo({
url: '/pages/index/index'
})
},
fail: function(res) {
// 登入失利
wx.showModal({
title: '登入失利',
content: '验证码错误'
})
}
})
```
三、常用登入问题与解决方案
1.登入状态过期
如果用户长时间未操作方式,登入状态可能会过期,此时须要再次登入。我们可以在前端展开检测,如果登入状态过期,则重定向至登入页面再次登入。
2.登入信息遗失
有时候,由于一些不幸情况引致本地留存的用户信息遗失,此时须要再次登入。我们可以在步入小程序首页时,检测本地与否留存存有用户信息,如果没,则重定向至登入页面再次登入。
3.横跨设备登入
如果用户在相同设备间采用同一账号登入,可能会碰到横跨设备登入问题。我们可以在登入时,将每个设备的设备ID和登入时间留存至后台。每次登入时,我们检查设备ID和登入时间与否与后台记录一致,从而防止横跨设备登入的问题。
总之,在研发小程序时,登入功能就是不可或缺的。通过挑选适宜自己的登入方式,合理同时实现登入功能,可以提升小程序的用户采用体验,为用户提供更多更好的服务。