當前位置:名人名言大全網 - 端午節短信 - 微信小程序退出賬號怎麽實現?

微信小程序退出賬號怎麽實現?

微信小程序退出賬號的前提條件是用戶已經登錄,並且用戶的登錄狀態已經記錄在前端頁面和後端服務中。註銷的操作相當於清除用戶登錄狀態的操作。

因此,微信小程序退出賬號的具體流程包括以下幾點:

1.用戶登錄操作:

(1)微信小程序調用wx.login獲取登錄證書(代碼)。

(2)將代碼傳遞給後端服務,然後交換用戶的登錄狀態信息,包括用戶的唯壹標識(openid),並生成與用戶壹壹對應的token值,保存並返回給微信小程序客戶端。

(3)微信小程序獲取令牌並保存在本地,可作為登錄狀態的憑證。

前端代碼是:

const login =?函數(){

wx . show loading({ title:‘landing‘})

wx.login()。然後(res = & gt{

if(RES . errmsg = = =‘log in:ok‘){

API . log in(RES . code)。然後(data = & gt{

wx.hideLoading()

wx . setstoragesync(‘token‘,data)})

}})}

後端服務代碼是:

異步登錄(jsCode ){

const { ctx,app } = this

const APPID = app . config . mini program . APPID;

const SECRET = app . config . mini program . app SECRET;

const url = `/sns/jscode2session?appid = $ { APPID } & ampsecret = $ { SECRET } & ampjs _ code = $ { jsCode } & ampgrant _ type = authorization _ code `;

const RES = await CTX . curl(URL,{ method:‘GET‘,dataType:‘JSON‘});

const OpenID = RES . data . OpenID;

const session _ key = RES . data . session _ key;

const str = await app . redis . get(OpenID);

if(str & amp;& ampJSON . parse(str)。access token){//已登錄。

const oldAccessToken = JSON . parse(str)。accessToken

await app . redis . del(oldAccessToken);//刪除令牌實現單點登錄。

await app . redis . del(OpenID);}

const access token = await CTX . helper . createwxtoken(OpenID,session _ key);//生成新令牌

返回accessToken}

2.退出登錄操作:

(1)單擊“退出帳戶”按鈕調用ajax請求後端退出登錄界面並傳遞用戶令牌。如果退出成功,當前用戶的登錄狀態和令牌信息將被清除。

(2)刷新當前頁面數據並清除頁面上的用戶信息。

(3)後端API在收到客戶端傳遞的用戶令牌後,查詢數據庫以確定用戶是否已登錄,如果是,則刪除該令牌或將其設置為無效。

前端代碼是:

const logout =?函數(){

wx . show loading({ title:‘退出登錄‘})

const token = wx . getstoragesync(‘token‘)

API . logout({ token:token })。然後(data = & gt{

wx.hideLoading()

wx . removestoragesync(‘token‘)

refreshPageData()

})}

後端代碼是:

異步註銷(access token ){

const { ctx,app } = this

const userId = await app . redis . get(access token);

如果(!UserId)CTX . throw(400,“登錄狀態已過期”);

await app . redis . del(userId);//刪除用戶標識

await app . redis . del(access token);//刪除令牌

}

擴展數據:

1.微信小程序的密碼登錄和授權登錄後,令牌將保存在loacalStore中。每次加載接口時,都會攜帶令牌向服務器傳達登錄狀態。

2.微信小程序註銷時需要清除登錄狀態。在微信小程序API中調用wx.login()進行登錄操作時,需要通過登錄接口獲取代碼後調用後端接口生成token。由於安全問題,不要在前端使用密鑰生成。註銷時,需要清除localStorage中的緩存令牌和用戶信息,並刷新當前頁面數據。