先上圖
實現流程:
1、授權登陸按鈕和正文資訊放到了同乙個頁面,未授權的時候顯示登陸按鈕,已授權的時候隱藏登陸按鈕,顯示正文資訊,當然也可以授權和正文分開成兩個頁面,在授權頁面的onload裡判斷是否已授權,若已授權就直接跳轉正文的頁面。這裡只說授權按鈕和正文在同一頁面的情況。
2、在onload裡先判斷是否已授權,如果已授權,就隱藏授權登陸按鈕,顯示正文資訊,如果沒有授權,顯示授權登陸按鈕。
3、前端使用button的open-type="getuserinfo"來操作,點選授權按鈕之後,「e」中會攜帶userinfo,使用者的基本資訊(和使用wx.getuserinfo介面獲取的資料一樣,所以我是在"e"裡面直接取的,沒有呼叫wx.getuserinfo介面)
4、使用wx.login介面獲取登陸憑證code,使用code去後解密換取openid,傳輸code的時候帶上第3步獲取的使用者資訊一塊傳送給後台解密(也可以不攜帶,攜帶的目的是為了驗證簽名,這樣安全一些,不驗證也可以)
5、後台解密使用的是「auth.code2session」介面,解密用到的sdk**位址
「程式設計客棧framework/open-ability/signature.html」。
5、後台解密之後(後台語言用的是php),會返回openid等敏感資訊,就還可以把這些資訊存起來了。
6、獲取授權成功之後,再隱藏授權登陸按鈕,顯示正文資訊。
7、如果使用者點選拒絕授權,提示引導使用者再次授權。
注意,要考慮到授權失敗的情況
以下是詳細**
wxml
申請獲取以下許可權
獲得你的公開資訊(暱稱,頭像等)
請公升級微信版本
我的首頁內容
wxss
.header
.header image
.content
.content text
.bottom
js// pages/test1/test1.js
var app = getapp();
page(,
/*** 生命週期函式--監聽頁面載入
*/onload: function (options) );
} else );}}
})}, //授權登陸按鈕
bindgetuserinfo: function (e) ,
data: ,
success: function (res_user) );
}}, fail: function () })}
www.cppcns.com })
} else
}, //未授權彈窗
showmodal: function (e) }})
},})
php<?php namespace app\teacherapi\controller;
use think\controller;
/*** @date: 2018-12
* 微信操作類
*/class wxdecode extends controller
/*** @author: zxf
* @date: 2018-12-08
* @description: 解密微信使用者敏感資料
* @return array
*/pubqhwgfotsnblic function wxdecode()
// 獲取解密後的資料
$pc = new \wxbizdatacrypt($appid, $sessionkey);
$errcode = $pc->decryptdata($encrypteddata, $iv, $data );
if ($errcode == 0) else
}}本文標題: php實現微信小程式授權登入功能(實現流程)
本文位址:
微信小程式授權登入
在這裡插入描述 前端部分 編寫自己的介面login.wxml login.js 獲取應用例項 page 生命週期函式 監聽頁面載入 onload function options 登入 dologin function e 後端部分 後端運用的是springboot框架 專案結構 官方教程 官方流程...
微信小程式授權登入
首先這個流程是怎麼樣的呢?他這個流程圖還是很ok的 code換取openid res getcurl url return json array code 0 msg 獲取成功!data json decode res 然後前段就可以獲取到代表使用者的openid和sessionkey了,然後就是我...
uni app微信小程式登入授權
首先是需要用到乙個授權按鈕來觸發獲取使用者資訊授權 關鍵在於 open type 為 getuserinfo 然後有個 getuserinfo的事件,把獲取授權介面寫到該事件裡面去 方法如下 ifdef mp weixin uni.getprovider fail fail else endif 在...