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