最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

uniapp登錄微信小程序

2023-04-13 14:35 作者:學(xué)酥兩支筆  | 我要投稿

一 小程序服務(wù)端文檔鏈接

https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/mp-access-token/getStableAccessToken.html

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html


二 登錄流程時(shí)序?yàn)?/p>

小程序 wx.login()獲取code

小程序 wx.request()發(fā)送code 開發(fā)者服務(wù)器

開發(fā)者服務(wù)器 登錄憑證校驗(yàn)接口 appid+appsecret+code 微信接口服務(wù)

微信接口服務(wù) 返回session_key+openid等 開發(fā)者服務(wù)器

開發(fā)者服務(wù)器 自定義登錄態(tài) 與openid,session_key關(guān)聯(lián)

開發(fā)者服務(wù)器 返回自動(dòng)以登錄態(tài) 小程序

小程序 自定義登錄態(tài) 存入storage

小程序 wx.request()發(fā)起業(yè)務(wù)請(qǐng)求 攜帶自定義登錄態(tài)

開發(fā)者服務(wù)器 通過自定義登錄態(tài) 查詢openid和session_key

開發(fā)者服務(wù)器 返回業(yè)務(wù)數(shù)據(jù)


說明:

前端調(diào)用 wx.login() 獲取 臨時(shí)登錄憑證code ,并回傳到開發(fā)者服務(wù)器。

后端調(diào)用 auth.code2Session 接口,換取 用戶唯一標(biāo)識(shí) OpenID 、 用戶在微信開放平臺(tái)帳號(hào)下的唯一標(biāo)識(shí)UnionID(若當(dāng)前小程序已綁定到微信開放平臺(tái)帳號(hào)) 和 會(huì)話密鑰 session_key。


注意事項(xiàng):

會(huì)話密鑰 session_key 是對(duì)用戶數(shù)據(jù)進(jìn)行 加密簽名 的密鑰。為了應(yīng)用自身的數(shù)據(jù)安全,開發(fā)者服務(wù)器不應(yīng)該把會(huì)話密鑰下發(fā)到小程序,也不應(yīng)該對(duì)外提供這個(gè)密鑰。

臨時(shí)登錄憑證 code 只能使用一次


三 其他項(xiàng)目解決方案

需要傳token的接口統(tǒng)統(tǒng)在header中加

Authorization? ?

terminalType 1:iOS,2:安卓? ??

version版本號(hào)


header中添加Authorization帶token值,獲取員工信息

即小程序request的header改為

header: {'content-type':'application/json', 'Authorization': token},


注:fastadmin做后端的話,Authorization關(guān)鍵詞改為token


四 uniapp登錄思路

1 前端獲取code?

2 后端獲取OpenID?

3 后端注冊(cè) 方法在FASTADMIN的auth類

4 后端登錄 返回userinfo,其中有token

5 前端獲取userinfo,存入globalData改變登錄狀態(tài)

6 header中聲明token進(jìn)行前后端交互


五 前臺(tái)小程序源生登錄

wx.login方法會(huì)返回用戶登錄憑證(有效期五分鐘)。

開發(fā)者需要在開發(fā)者服務(wù)器后臺(tái)調(diào)用 code2Session,使用 code 換取 openid、unionid、session_key 等信息

```

wx.login({

? success (res) {

? ? if (res.code) {

? ? ? //發(fā)起網(wǎng)絡(luò)請(qǐng)求

? ? ? wx.request({

? ? ? ? url: 'https://example.com/onLogin',

? ? ? ? data: {

? ? ? ? ? code: res.code

? ? ? ? }

? ? ? })

? ? } else {

? ? ? console.log('登錄失??!' + res.errMsg)

? ? }

? }

})

```


六 后臺(tái)jscode2session接口根據(jù)code,獲取unionid等

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code?


七 uniapp封裝的登錄方法

文檔鏈接:

https://uniapp.dcloud.net.cn/api/plugins/login.html

```

uni.login({

? provider: 'weixin', //使用微信登錄

? success: function (loginRes) {

? ? console.log(loginRes.authResult);

? }

});

```


八 后端FASTADMIN的登錄認(rèn)證

FASTADMIN使用了基于Auth驗(yàn)證的權(quán)限管理系統(tǒng)

配置項(xiàng)路徑為:

application\common\controller\backend.php 里的 protected $dataLimit

相關(guān)表為:

auth_group

auth_rule

引用:

use app\common\library\Auth;

注冊(cè):

$auth = new Auth();

$auth ->register('test', 'test123456789');


九 auth、token、cookie、session等

1 this->auth是保存在服務(wù)器端的,類似session

2 token是保存在客戶端的,類似cookie

3 auth是每次api訪問后生成的,里邊保存包括用戶的信息.

4 session和cookie是本次訪問本臺(tái)服務(wù)器記錄下來的會(huì)話信息,無法用于api接口開發(fā)方式,因?yàn)槊恳淮握?qǐng)求都會(huì)是新的session 會(huì)導(dǎo)致本次存儲(chǔ)的session和上次的不一樣,到時(shí)候會(huì)讀不到你想要的.

5 token是用戶登錄后生成的,也可以是其它途徑生成.token生成后會(huì)存入數(shù)據(jù)庫(對(duì)于fastadmin來說,是這樣實(shí)現(xiàn)的,一個(gè)用戶有多個(gè)token),在訪問api的時(shí)候,fastadmin會(huì)通過token來獲取用戶信息.


十 論壇查詢token相關(guān)問答

關(guān)于fastadmin后臺(tái)操作檢測(cè)權(quán)限使用說明

頁面

? ? <table id="table" class="table table-striped table-bordered table-hover"?

? ? ? ? ? ?data-operate-edit="{:$auth->check('user/user/edit')}"?

? ? ? ? ? ?data-operate-del="{:$auth->check('user/user/del')}"?

? ? ? ? ? ?width="100%">

? ? </table>

基類文件路徑:

app\common\backend.php

引用Auth:

use app\admin\library\Auth;

初始化auth:

$this->auth = Auth::instance();

app\admin\library\Auth繼承于extend/fast/Auth類

$uid加載獲取登錄的賬號(hào)所有權(quán)限

$uid = $uid ? $uid : $this->id

因?yàn)橐肓薬dmin模型

use app\admin\model\Admin;

$uid = $uid ? $uid : $this->id

在登錄成功時(shí)候會(huì)把用戶信息進(jìn)行寫入session

通過TP自動(dòng)調(diào)用魔術(shù)方法__get獲取admin成員屬性

直接訪問$this->id就是去找admin模型的屬性。


十一 改造user表

新增openid

新增unionid

php think crud -t adminuser -u -f 1


十二 api中新增方法jscode2session

```

public function jscode2session()

{

? ? ? ? $jscode = $this->request->get("jscode");

? ? ? ? $url = "https://api.weixin.qq.com/sns/jscode2session";

? ? ? ? $res = Http::sendRequest($url); //array類型 直接返回報(bào)錯(cuò) $res = json_encode($res);

? ? ? ? $msg = $res['msg']; //string類型

? ? ? ? $msg = json_decode($msg, true);

? ? ? ? $openid = '';

? ? ? ? if($msg['openid']){

? ? ? ? ? ? $openid = $msg['openid'];

? ? ? ? ? ? //api登錄拷貝自u(píng)ser.php。在app/common/library/Auth.php中新增loginbyopenid

? ? ? ? ? ? $ret = $this->auth->loginByOpenid($openid);?

? ? ? ? ? ? if ($ret) {

? ? ? ? ? ? ? ? $data = ['userinfo' => $this->auth->getUserinfo()];

? ? ? ? ? ? ? ? return json_encode($data);

? ? ? ? ? ? } else {

? ? ? ? ? ? ? ? return "注冊(cè)失敗";

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? else{

? ? ? ? ? ? return "登錄失敗";

? ? ? ? }

? ? }

```


十三 auth類中新增方法loginByOpenid

略 修改自原有的注冊(cè)和登錄方法


十四 uniapp新增小程序登錄

1 先獲取系統(tǒng)類型

uni.getSystemInfo

2 調(diào)用登錄方法

uni.login

3 回調(diào)中調(diào)用后端注冊(cè)登錄方法

uni.request

4 以上部分是異步方法,最終的回調(diào)中同步存入本地并更新數(shù)據(jù)

uni.setStorageSync


十五 上傳和修改頭像

前端上傳使用

uni.uploadFile

新建方法

```

? ? public function upload_avatar()

? ? {

? ? ? ? $user = $this->auth->getUser();

? ? ? ? $avatar = $this->request->file('image');

? ? ? ? $info = $avatar->move(ROOT_PATH . 'public' . DS . 'uploads');

? ? ? ? if($info){

? ? ? ? ? ? // 成功上傳后 獲取上傳信息

? ? ? ? ? ? //$info = $info->getExtension(); // 輸出文件類型

? ? ? ? ? ? $info = $info->getSaveName();//輸出 20160820/42a79759f284b767dfcb2a0197904287.jpg

? ? ? ? ? ? //$info = $info->getFilename();// 輸出 42a79759f284b767dfcb2a0197904287.jpg

? ? ? ? }else{

? ? ? ? ? ? // 上傳失敗獲取錯(cuò)誤信息

? ? ? ? ? ? $info = $file->getError();

? ? ? ? }

? ? ? ? return $info;

? ? }

```


uniapp登錄微信小程序的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
外汇| 北海市| 富宁县| 铜川市| 大同市| 湟源县| 青海省| 仙游县| 五峰| 平潭县| 高唐县| 平昌县| 潮州市| 临安市| 汉沽区| 瑞金市| 静海县| 上犹县| 陵川县| 临桂县| 桑植县| 昌黎县| 大名县| 瑞丽市| 徐汇区| 清丰县| 红原县| 左贡县| 鄂伦春自治旗| 洮南市| 贵德县| 平塘县| 思南县| 黔江区| 武城县| 启东市| 资讯 | 汕头市| 通城县| 奉贤区| 黄梅县|