Vue綁定用戶接口實(shí)現(xiàn)代碼示例
微博綁定用戶接口
oauth/urls.py 中添加路由
urlpatterns = [path(’weibo/binduser/’, views.OauthWeiboBindUser.as_view()), #/oauth/weibo/callback/]
oauth/views.py 中添加試圖函數(shù)
class OauthWeiboBindUser(APIView): permission_classes = (AllowAny,) def post(self, request): # 綁定用戶, 1. 已注冊(cè)用戶, 2. 未注冊(cè)用戶 # 1.1 獲取用戶名, 密碼, weibo_uid username = request.data.get(’username’) password = request.data.get(’password’) weibo_uid = request.data.get(’weibo_uid’) if not all([username, password, weibo_uid]): return Response({’code’: 999, ’msg’: ’參數(shù)不全’}) # 0.判斷是否存在此用戶 try: user = User.objects.get(username=username) except Exception as e: user = None # 1. 已注冊(cè)用戶 if user: # 1.2 , 如果存在就驗(yàn)證 密碼, 驗(yàn)證通過(guò),就綁定, 返回token,登錄成功 if user.check_password(password):ou = OauthUser(uid=weibo_uid, user=user, oauth_type=’1’)ou.save()payload = jwt_payload_handler(user) # 通過(guò)user對(duì)象獲取到j(luò)wt的payload信息token = jwt_encode_handler(payload) # 生成tokendata = jwt_response_payload_handler(token, user)data[’type’] = ’0’ # 指定為登錄成功return Response({’code’: 0, ’msg’: ’登錄成功’, ’data’: data}) else:return Response({’code’: 999, ’msg’: ’密碼錯(cuò)誤’}) else: # 2. 未注冊(cè)用戶 # 2.1 生成新用戶, 設(shè)置用戶名密碼, 保存, 然后綁定, 返回token, 登錄成功 user = User(username=username) user.set_password(password) user.save() ou = OauthUser(uid=weibo_uid, user=user, oauth_type=’1’) ou.save() payload = jwt_payload_handler(user) token = jwt_encode_handler(payload) data = jwt_response_payload_handler(token, user) data[’type’] = ’0’ #指定為登錄成功 return Response({’code’:0,’msg’:’登陸成功’,’data’:data})
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JS中6個(gè)對(duì)象數(shù)組去重的方法2. Java commons-httpclient如果實(shí)現(xiàn)get及post請(qǐng)求3. 資深程序員:給Python軟件開發(fā)測(cè)試的25個(gè)忠告!4. 一文帶你徹底理解Java序列化和反序列化5. PHP程序員簡(jiǎn)單的開展服務(wù)治理架構(gòu)操作詳解(二)6. PHP利用curl發(fā)送HTTP請(qǐng)求的實(shí)例代碼7. Python基于requests庫(kù)爬取網(wǎng)站信息8. vscode運(yùn)行php報(bào)錯(cuò)php?not?found解決辦法9. PHP laravel實(shí)現(xiàn)導(dǎo)出PDF功能10. python中文本字符處理的簡(jiǎn)單方法記錄

網(wǎng)公網(wǎng)安備