使用Django 認(rèn)證模塊但不使用權(quán)限及登入裝飾器

使用Django auth 登入認(rèn)證模塊

#!/usr/bin/env python

#encoding: utf-8

#author: xiaofangliu

importjson

importuuid

fromdjango.shortcutsimportrender

fromdjango.httpimportJsonResponse

fromdjango.views.decorators.csrfimportcsrf_exempt

fromdjango.contrib.auth.modelsimportUser

fromdjango.contrib.authimportauthenticate, login, logout

frompassport.modelsimportuserInfo

frompassport.modelsimportoperLog

fromappsimportrun_is_admin

#Create your views here.

@csrf_exempt

deflogin(request):

json_data=json.loads(request.body)

username=json_data.get('username','')

password=json_data.get('password','')

users=User.objects.filter(username=username)

ifusers:

user=authenticate(username=username,password=password)

ifuser:

print'user2', user

ifuser.is_active:

#login(request, user)

hash_key=uuid.uuid1()

user_id=User.objects.filter(username=user).values('id')

##print 'user_id', user_id, user_id[0].get('id')

obj=userInfo.objects.create(user_id=user_id[0].get('id'),hashKey=hash_key)

is_admin=run_is_admin(obj.hashKey)

res={'status':True,'msg':'登錄成功。。','user_id': user.pk,'userhashid': obj.hashKey,'code':'0','username': username,'is_admin': is_admin}

else:

res={'status':False,'msg':'登錄失敗。。','user_id':'','userhashid':'','code':'2'}

else:

res={'status':False,'msg':'登錄失敗。。','user_id':'','userhashid':'','code':'1'}

else:

res={'status':False,'msg':'用戶不存在,請注冊。。','user_id':'','userhashid':'','code':'1'}

#print 'login', res

operLog.objects.create(user=username,type='login',status=res['status'],desc=res['msg'],code=res['code'])

returnJsonResponse(res)

@csrf_exempt

defsignup(request):

json_data=json.loads(request.body)

username=json_data.get('username','')

password=json_data.get('password','')

email=json_data.get('email','')

res={

'status':True,

'msg':''

? ? }

#print 'json_data', json_data

try:

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

res['code']='1'

res['user_id']=user.id

res['userhashid']=''

res['msg']='用戶已經(jīng)存在,請直接登入..'

#print 'user1', user

exceptUser.DoesNotExist:

user=User.objects.create_user(username, email, password)

#print 'user2', user

ifuserisnotNone:

user.is_active=True

? ? ? ? ? ? user.save()

#todo 新用戶,并綁定

hash_key=uuid.uuid1()

user_id=User.objects.filter(username=user).values('id')

#print 'user_id', user_id, user_id[0].get('id')

obj=userInfo.objects.create(user_id=user_id[0].get('id'),hashKey=hash_key)

is_admin=run_is_admin(obj.hashKey)

#print 'obj', obj.hashKey

res['username']=username

res['is_admin']=is_admin

res['code']='0'

res['userhashid']=obj.hashKey

res['user_id']=obj.user_id

res['msg']='用戶創(chuàng)建成功..'

else:

res['status']=False

res['code']='2'

res['userhashid']=''

res['msg']='用戶創(chuàng)建失敗..'

print'res1', res

operLog.objects.create(user=username,type='signup',status=res['status'],desc=res['msg'],code=res['code'])

returnJsonResponse(res)

@csrf_exempt

defreset_password(request):

json_data=json.loads(request.body)

username=json_data.get('username','')

first_pwd=json_data.get('firstPwd','')

second_pwd=json_data.get('secondPwd','')

print'json_data', json_data

iffirst_pwd==second_pwd:

print'password'

user=User.objects.filter(username=username)

ifuser:

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

? ? ? ? ? ? user.set_password(second_pwd)

? ? ? ? ? ? user.save()

print'user3', user

hash_key=uuid.uuid1()

user_id=User.objects.filter(username=username).values('id')

#print 'user_id', user_id, user_id[0].get('id')

obj=userInfo.objects.create(user_id=user_id[0].get('id'),hashKey=hash_key)

is_admin=run_is_admin(obj.hashKey)

res={'status':True,'msg':'修改成功。。','user_id': obj.user_id,'userhashid': obj.hashKey,'code':'0','username': username,'is_admin': is_admin}

else:

res={'status':False,'msg':'用戶不存在。。','user_id':'','userhashid':'','code':'1'}

else:

res={'status':False,'msg':'修改失敗。。','user_id':'','userhashid':'','code':'2'}

operLog.objects.create(user=username,type='reset_password',status=res['status'],desc=res['msg'],code=res['code'])

returnJsonResponse(res)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容