DRF框架登入功能自定義認證和自定義的處理返回資料

2021-09-24 13:31:08 字數 1422 閱讀 1268

1.在users模組建立utils.py,通過這個方法驗證是否為正確的使用者

from django.contrib.auth.backends import modelbackend

import re

from . import models

class userphoneemail(modelbackend):

'''當前的類是用來定義自定義的認證方法

'''def authenticate(self, request, username=none, password=none, **kwargs):

# 重寫父類方法

# todo 通過手機號,使用者名稱,郵箱獲取物件

try:

# todo 通過正則判斷是手機號還是使用者名稱還是郵箱

if re.match(r'^1[\d]$',username):

user=models.user.objects.get(phone=username)

elif re.match(r'^[\w]+@[\w]+\.com$', username):

user = models.user.objects.get(email=username)

else:

user = models.user.objects.get(username=username)

except models.user.doesnotexist:

user = none

# todo 拿到user後,進行校驗

if user is not none and user.check_password():

return user

2.在setting裡進行配置

jwt_auth=
3.設定url

from rest_framework_jwt.views import obtain_jwt_token

urlpatterns=[

url(r'^login/',obtain_jwt_token), #登陸

]

可以看到前端可以獲得的只有乙個token:

4.jwt登陸驗證成功之後自定義的處理返回資料

通過自定義這種方法可以得到想要的資料

def jwt_response(token,user=none,request=none):

data=

return data

5.在setting裡進行配置

jwt_auth=
前端獲取到的資料

也就是通過自定義處理返回資料後,可以得到需要的不僅僅有token,也可以有id,使用者名稱等。

Shiro安全框架 自定義認證

1.和之前一樣先引入依賴 org.apache.shiro shiro web org.apache.shiro shiro core org.apache.shiro shiro spring commons logging commons logging 1.22.配置好自定義shiro.ini...

ThinkCMF框架自定義功能函式

thinkcmf是基於thinkphp開發的一款優秀的內容管理框架,系統本身已經開發好了絕大多數的內容,但是在細節上還有待改進的空間,以下為自定義的功能函式來滿足 開發中的需求!以下為自定義功能函式 以下為自定義功能函式 判斷是否為頂級分類 是 返回頂級分類及其子類id 否 返回該分類id para...

使用者認證自定義

設定郵箱和使用者名稱和手機號均可登入 authentication backends users.views.custombackend class custombackend modelbackend 自定義使用者驗證規則 defauthenticate self,username none pa...