php實現微信小程式授權登入功能 實現流程

2022-09-26 03:45:11 字數 1899 閱讀 4930

先上圖

實現流程:

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 在...