微信小程式踩坑—使用者登入介面
最近做的一個專案有涉及到使用者登入。微信小程式的使用者登入在我看來有兩種,一種是需要用微信提供的使用者身份標識,簡單地說就是小程式的登入者就是使用這個小程式的微信使用者,還有一種是小程式和伺服器之間有自己的一套使用者唯一標識,類似於員工id這種,這種就不需要獲取微信的登陸憑證換取openid等繁雜操作,就是簡單地輸入賬號密碼登陸然後就能從伺服器獲取使用者資料。這次做的專案用的是第二種。
第一種方式官方文件的流程圖已經說得足夠明白清晰。
步驟分為兩步:
1.小程式呼叫wx.login() 獲取 臨時登入憑證code ,並回傳到開發者伺服器。
2.開發者伺服器以code換取 使用者唯一標識openid
之後開發者伺服器可以根據使用者標識來生成自定義登入態,用於後續業務邏輯中前後端互動時識別使用者身份。
具體介面詳見官方文件
第二種方式就簡單多了,只需要發起wx.request()請求將輸入的賬號密碼送至伺服器換取登入資訊。
wxml程式碼
<view class="container"> <open-data type="userAvatarUrl" class='avatar'></open-data> <!-- <image src='{{avatarUrl}}' class='avatar'></image>--> <form bindsubmit="formSubmit" class='form'> <view class="row"> <input type="text" name="userId" placeholder="請輸入使用者賬號" placeholder-class='placeholder' value="{{userId}}" /> </view> <view class="row"> <input type="password" name="userPassword" placeholder="請輸入密碼" placeholder-class='placeholder' value="{{userPassword}}" /> </view> <view class="row"> <button class='btn' form-type="submit"><text class='lable'>繫結賬號</text></button> </view> </form> </view>
這裡特別要提一嘴的是,用到了這行程式碼顯示使用者頭像。
<open-data type="userAvatarUrl" class='avatar'></open-data>
獲取使用者資訊時,如果是隻需要獲取使用者的頭像和暱稱,可以直接使用<open data />元件,如果還需要更多使用者資訊要通過wx.getUserInfo()獲取。
最終的介面是這樣子的
登陸按鈕的bindsubmit事件中的wx.request()
wx.request({ url: '', //伺服器的登入介面 data: { id: objData.userId, password: objData.userPassword }, header: { 'Content-Type': 'application/x-www-form-urlencoded' }, method: 'POST', success: function (res) { if(res.data.code == 0){ //賬號密碼比對正確 var userInfo = res.data.data //使用者登入資訊 wx.setStorageSync('userInfo', userInfo); //跳轉到成功頁面 wx.switchTab({ url: '../onDuty/onDuty' }) } else { //出現error wx.showToast({ title: res.data.message.slice(5), icon: 'loading' }) } }, fail: function () { console.log('繫結失敗QAQ') wx.showModal({ title: '失敗', content: '繫結失敗,請重試', }) }})
相關推薦
微信小程式踩坑—使用者登入介面
最近做的一個專案有涉及到使用者登入。微信小程式的使用者登入在我看來有兩種,一種是需要用微信提供的使用者身份標識,簡單地說就是小程式的登入者就是使用這個小程式的微信使用者,還有一種是小程式和伺服器之間有自己的一套使用者唯一標識,類似於員工id這種,這種就不需要獲取微信的登陸憑證
微信小程式踩坑—本地快取
同一個微信使用者,同一個小程式 storage 上限為 10MB。 1.wx.setStorageSync(KEY,DATA) 將data 同步儲存在本地快取中指定的 key 中,會覆蓋掉原來該 key 對應的內容。 var userInfo = res.data.da
微信小程式踩坑–設定cookie保持session
由於每次wx.request()都會先經過微信服務端再到伺服器端,所以每一次request都會建立一個新的session。並且微信小程式是沒有cookie機制的,要維持會話需要自己來儲存cookie,並且請求的時候加上帶有sessionid的cookie。 客戶端向服務端發起請求時,sessio
微信小程式 踩坑實錄
最近幾個月工作飽和度較高,寫了一些小程式相關資料都在公司內網wiki中。 正好有朋友想做小程式相關,想看些資料。趁著 這個契機,把文章發出來給大家分享一下。 文章簡陋,勿噴。 開發前 需要與產品商榷的頁面細節 序號
微信小程式踩坑總結
1,滑動頁面的時候會出現留白。解決:最外層套一個scroll,不設定x、y滑動。注意距離要撐開,內層要有一個大的view,給它一個小margin-top 2,button出現多餘的邊框。解決:button::after設定border為none 3,自定義元件。自定義元件如果是page({}
微信小程式踩坑之微信支付提示商戶未開通支付許可權
繼上次踩坑事件後 我們現在API祕藥都是採用數字+小寫字母 後面不多久公司就成為了微信服務商 工作起來 效率提高不少 然鵝我今天又踩了一個坑 給客戶開通了微信支付客戶不給賬號給我登入 拿不到裡面的一些資料 和APPID授權啥的 都是指導客戶開通 這些弄完之後 測試小程式支付
微信小程式踩坑日誌(二)
indexOf 在wxml檔案中不能使用 Object.keys() toString() indexOf() ; 其中indexOf()方法在wxml中怎麼樣都返回undefined; textarea textarea在小程式中算是一個比較大的坑了;
微信小程式踩坑(1):wx.showModal模態對話方塊中content換行
問題:wx.showModal 對話方塊內容不能換行? 如上圖所示,模態對話方塊中content是沒有換行的,但是我們需求中有需要換行提醒的業務,那怎麼辦呢?官方API中並沒有告訴我們怎麼做! 解決方案:使用“\r\n”換行 原始碼 wx.showModal({
微信小程式踩坑——專案內資料夾刪除不掉
想要刪publishTask資料夾,在IDE裡刪沒反應,去檔案資源管理器刪提示需要管理員許可權, 太鬼扯了,原來因為要刪的資料夾裡有巢狀一層資料夾,所以禁止刪除。要先刪掉裡層資料夾,才可以刪除外層。換句話說,想要刪除的資料夾要保證不包
微信小程式踩坑- tabBar.list[3].selectedIconPath 大小超過 40kb
重新啟動微信小程式編輯器的時候遇到了這樣的一個問題:tabBar.list[3].selectedIconPath 大小超過 40kb微信小程式開發的過程之中總會出現這樣或者那樣的錯誤,需要我們耐心的去尋找,仔細檢視和百度查詢之後,發現了原因:其中有一張圖片,替換的時候沒有注
微信小程式踩坑記錄
最近開發了一款微信小程式,在開發過程中遇到了一些微信小程式的坑,記錄下來,希望對後邊開發小程式的同學有點幫助。後期開發過程如果有新的踩坑記錄,也會相應的更新在改文件中。 1、畫素值與單位之間不能有空格 微信小程式的樣式存放在.wxss檔案,畫素單位用rp
微信小程式 踩坑之JSON.parse ()轉換失敗問題
微信小程式:json、map、字串轉換 JSON.parse (<anonymous>)轉換失敗,可以使用微信小程式快取機制解決 /*****index.js*****/ formSubmit: function (e) { wx.setStorage
微信小程式踩坑之路--01 元件層級過高
問題描述 我在開發小程式的過程中,遇到video,textarea等元件層級過高,其他元素無法遮蓋這些元件,讓人抓狂。 案例1 textarea元件元素過高,當有toast彈出時,文字浮於上方,效果如圖所示: 我們看到textarea元件文字
微信小程式踩坑日記1——呼叫微信授權視窗
0. 引言 微信小程式為了優化使用者體驗,取消了在進入小程式時立馬出現授權視窗。需要使用者主動點選按鈕,觸發授權視窗。 那麼,在我實踐過程中,出現了以下問題。 1. 無法彈出授權視窗 2. 希望在使用者已經授權的情況下,不顯示按鈕 1. 具體實現 app.js的onLaunch
微信小程式填坑之路(四):微信登入獲取openid、unionid
在微信小程式中,因為各種各樣的原因我們會需要獲取到使用者的openid或者unionid下面就簡單來講一下在小程式中如何獲取openid和unionid。 步驟一:微信登入獲取登入憑證
微信小程序踩坑集
log icon spa utils for not duration 是我 問題 setData function is not defined 這個問題只會出現在 wx.request(OBJECT)中 具體替代嗎吧!寫日誌真的不是我的強項 //logs
微信小程序踩坑之一【weui-wxss-master單選按鈕圖標修改思路】
ini lcx 微信 一個 margin group ces 顯示 In 小程序原生所帶的weui框架做小程序UI實在太方便了,但是他的一些細微變化也是讓開發中碰到不少頭疼的問題 一直以來單選多選的美化都是設計師重點表達的地方之一 而weui-wxss-master中的單選
Egret 生成 自帶EUI 的微信小遊戲 踩坑!
end custom 點擊 ati gre faq commonjs require IE 1. 首先,再次被網上一大堆屎一樣的資料搞得浪費了我一天時間。各種坑。 2. 本文先講一種正確的方式,然後再列舉坑。 去www.egret.com下載最新的引擎,我的最新版
微信小程式開發使用者授權登入
用wx.login獲取登入憑證code <!--pages/user/index.wxml--> <view hidden='{{boolean}}'> <view wx:if="{{isLogin == 1}}"> <!-- 個人資訊 --
微信小程式採坑記錄 ------- canvas 生成分享到朋友圈帶小程式碼的圖片
最近做了一個問卷類的小程式,其中的結果頁想讓使用者進行朋友圈分享轉發,網上搜索資料,得出解決思路,用 canvas 將頁面繪製生成圖片,然後儲存到手機相簿,最終效果如下: 在這裡我只寫頁面裡關於 canvas 生成圖片並進行儲存這個流程的相關程式碼,並且會