微信小程序退出账号怎么实现

微信小程序退出账号怎么实现,第1张

微信小程序退出账号的前提条件是用户已登陆,且在前端页面和后端服务已记录了用户的登陆状态。退出登陆的 *** 作,相当于清除用户登陆状态的 *** 作。

因此微信小程序实现退出账号的具体流程包括以下几点:

1、用户登陆 *** 作:

(1)微信小程序调用wxlogin获取登录凭证(code)。

(2) 将code传递到后端服务,通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid),并生成与用户一一对应的token值,保存起来,用作用户身份的校验,同时返回给微信小程序客户端。

(3)微信小程序获取到token令牌,保存到本地,即可作为已登陆状态的凭证。

前端代码为:

const login =  function () {

wxshowLoading({ title: '登陆中' })

wxlogin()then(res => {

if (reserrMsg === 'login:ok') {

Apilogin(rescode)then(data => {

wxhideLoading()

wxsetStorageSync('token', data) })

}})}

后端服务代码为:

async login(jsCode) {

const { ctx, app } = this;

const APPID = appconfigminiProgramappId;

const SECRET = appconfigminiProgramappSecret;

const url = `>

const res = await ctxcurl(url, { method: 'GET', dataType: 'json' });

const openid = resdataopenid;

const session_key = resdatasession_key;

const str = await appredisget(openid);

if (str && JSONparse(str)accessToken) { // 已登陆

const oldAccessToken = JSONparse(str)accessToken;

await appredisdel(oldAccessToken); // 删除token,实现单点登陆

await appredisdel(openid);}

const accessToken = await ctxhelpercreateWxToken(openid, session_key); // 生成新的token

return accessToken;}

2、退出登陆 *** 作:

(1)点击“退出账号”按钮,调用ajax请求后端退出登陆接口并传递用户token,若退出成功,则清除当前用户登陆状态和token信息。

(2)刷新当前页面数据,清除页面上的用户信息。

(3)后端API接收到客户端传递的用户token,查询数据库判断用户是否已登陆,若登陆,则删除或将token置为无效。

前端代码为:

const logout =  function () {

wxshowLoading({ title: '退出登陆中' })

const token = wxgetStorageSync('token')

Apilogout({ token: token })then(data => {

wxhideLoading()

wxremoveStorageSync('token')

refreshPageData()

})}

后端代码为:

async logout(accessToken) {

const { ctx, app } = this;

const userId = await appredisget(accessToken);

if (!userId) ctxthrow(400, '登陆状态已失效');

await appredisdel(userId); // 删除userId

await appredisdel(accessToken); // 删除token

}

扩展资料:

1、微信小程序账号密码登陆和授权登陆后,token保存在loacalStore中,在每次加载接口时,携带上token令牌,向服务端传递已登陆的状态。

2、微信小程序退出登陆需清除登陆状态,当调用微信小程序API中的wxlogin()执行登陆 *** 作,通过登陆接口获取到code后需调用后端接口生成token, 由于安全问题,勿在前端使用密钥生成。在执行退出登陆 *** 作时,需清除localStorage 中缓存的token及用户信息,并刷新当前页面数据。

select a,bnames from news a left join myname b on auserid=buserid where auserid='"$openid"' order by aid desc limit "$ind', '$count;

以上就是关于微信小程序退出账号怎么实现全部的内容,包括:微信小程序退出账号怎么实现、表news有userid,表myname也有userid,查询主表news多项数据的同时,查询myname表中对应userid的names值、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9698353.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存