微信小程式python使用者認證的實現

2022-10-04 16:39:19 字數 2061 閱讀 2020

這裡用到django-rest-framework-jwt這個庫  

按流程圖來

先通過wx.login()獲取code,再通過我們後台配置的介面獲取openid和session_key

// 登入

wx.login(,

success: function (res) ,

success: function (res) );

wx.setstorage()

} else )}}

})}

})} })

在這裡的使用者表最好是在django自帶的user表上進行字段拓展,不然重寫起來會很麻煩,拓展方法如下

from django.contrib.auth.models import abstractuser

# create your models here.

class user(abstractuser):

"""使用者新增字段

"""name = models.charfield(max_length=30, null=true, blank=true, verbose_name="姓名")

下面是django的user預設字段,需要儲存使用者頭像,使用者省市等字段只要在原有基礎上新增即可

生成3rd session

先在後台配置jwt

安裝pip install djangorestframework-jwt

在你的settings.py,新增jsonwebtokenauthentication到django rest框架default_authentication_classes。

rest_framework =

#在您urls.py新增以下url路由以啟用通過post獲取令牌包括使用者的使用者名稱和密碼。

from rest_framework_jwt.views import obtain_jwt_token

#...

urlpatterns = [

'',# ...

url(r'^api-token-auth/', obtain_jwt_token),

]通過post使用者的使用者名稱和密碼獲取token

wx.request(,

success: function(jwt)

})後端配置時需要加上authentication_classes進行認證

from rest_framework.permissions import isauthenticated

from rest_framework_jwt.authentication import jsonwebtokenauthentication

# 商品表

class goodsvwww.cppcns.comiewset(viewsets.modelviewset):

queryset = goods.objects.all()

serializer_class = goodsserializers

filter_class = goodsfilter

filter_backends = (djangofilterbackend, filters.searchfilter)

search_fields = ('name',)

#認證配置

permission_classes = (isauthenticated,)

authentication_classes = (jsonwebtokenauthentication,)

使用方法

在請求加了認證的view時,如果不在head中帶入jwt_token,請求401

在header中帶入請求資料成功

//從快取中取出jwt_token,並按文件用法拼接,在header中帶入authorization

// jwt +jwt_token

var jwt_token = 'jwt ' + wx.getstoragesync('jwt_token')

w程式設計客棧x.request(,

success:function(res)

})本文標題: 微信小程式python使用者認證的實現

本文位址:

(微信小程式)一 初識微信小程式

需要看的 先是檔案目錄 一 pages 他存放於多個頁面 如 index log頁面。可以把他裡面的每個資料夾看成乙個整體。這個整體存放著 html css 和 資料 1 index資料夾 存放的index頁面的目錄。2 index.js 他可以處理得到 ajax 或自定義定義的資料。把得到的值封裝...

微信小程式

2.單獨設定某一頁面下的頂部欄的背景顏色,在其對應的.json檔案下修改即可 3.this.setdata 注意 onload函式下面執行的是非同步操作,非同步操作裡面this.data.直接賦值,是無效的,必須使用this.setdata this.setdata msg he llo wor l...

微信小程式

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的ka...