小程式登入

2022-07-03 09:00:11 字數 1128 閱讀 4400

注:1. 自定義登入態:因為小程式沒有cookie,所以在此處自定義登入態(偽cookie)來識別使用者。

cookie是為了更好的在伺服器儲存使用者資訊,保證使用者在小程式與伺服器傳輸資料的安全性。

實現步驟:

1. wx.login獲取使用者臨時登入憑證code。

小程式開發文件:

呼叫介面獲取登入憑證(code)。通過憑證進而換取使用者登入態資訊,包括使用者的唯一標識(openid)及本次登入的會話金鑰(session_key)等。使用者資料的加解密通訊需要依賴會話金鑰完成。

示例**:

wx.login(

})} else

}})

2. wx.getuserinfo獲取加密過的資料encrypteddata和解密引數iv。

獲取使用者資訊。【呼叫前需要使用者授權

3. 把步驟

一、二中的code、encrypteddata、iv傳到開發者自己服務端

secret:小程式金鑰

js_code:第一步獲取的臨時登入憑證code

grant_type:'authorization_code'

介面會返回 openid, session_key

注意:使用者已經授權過的平台還會返回unionid,如果你只是需要unionid,則到此為止

4. 仿照示例解密後獲得unionid,想做什麼就做什麼了~

authlogin () ,

succeess: res => })}

})}})}

新的授權需用button元件呼叫getuserinfo,所以在這之前無法呼叫wx.login,但是如果先呼叫獲取使用者資訊再呼叫wx.login的話,解密過程會出錯,猜測code對應的session_key和之前getuserinfo獲取的encrypteddata不匹配

在頁面的onload生命週期裡呼叫wx.login,獲取的code存入data以備需要的時候使用,但是code失效時間為5分鐘,如果使用者停留頁面時間過長後點選授權登入,此時的code已經過期了,所以,獲取code的函式應該每4分鐘左右呼叫一次

小程式登入流程

之前一直對小程式登入流程比較模糊,今天看了個文章 感覺清晰了很多,總結一下。首先,我們不應該直接獲取使用者資訊,目前好像也不能直接獲取使用者資訊。原則是 當我們需要獲取使用者資訊的時候才發起授權。1.wx.getuserinfo 這個函式 是需要授權才能獲取使用者資訊 2.那麼我們只能用button...

小程式登入及AppSecret 小程式金鑰

在授權開發以後,需要提交小程式金鑰,有小程式金鑰第三方才有能力獲取使用者的一些資訊,提供一些能力!1.呼叫wx.login介面,靜默獲取openid 適用場景 無需使用使用者頭像 暱稱 unionid資訊 2.使用open data 小程式 或者開放資料域 小遊戲 的方式展示使用者資訊 無需使用者授...

小程式彈出登入詢問

邏輯如下 1 第一次登陸的時候會有乙個登入按鈕遮罩浮層提示去授權登入 2 在彈出的授權框裡,拒絕授權按鈕的時候,介面的資料沒有辦法載入出來,允許授權的時候,介面就能渲染從後端拿過來的資料 3 判斷是否授過權 判斷是第一次登入還是第n次 如果使用者第一次已經登入授權,後面繼續登入的時候懸浮框就不會再出...