一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python,Django實現的淘寶客登錄功能示例

python,Django實現的淘寶客登錄功能示例

2021-07-11 00:25輕舞肥羊 Python

這篇文章主要介紹了python,Django實現的淘寶客登錄功能,結合實例形式分析了Django框架基于淘寶接口的登錄功能相關操作技巧,需要的朋友可以參考下

本文實例講述了python,django實現的淘寶客登錄功能。分享給大家供大家參考,具體如下:

在整理python,django資料的時候,發現了這個東西,也許是當初某位網友或者朋友發過來參考或者一起探討修改的東西,現在不記得了,也許taobao的接口都變了也有可能,但總體來說還是有參考價值的,主要是做淘寶客客或者返利網會用到taobao登錄而用的.

參考代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/python
#coding:utf-8
import datetime, urllib, base64, random
from hashlib import md5
from django.conf import settings
from django.contrib import auth
from django.contrib.auth.models import user
from django.core.urlresolvers import reverse
from django.http import httpresponseredirect
from django.shortcuts import render
from app.taobao.backends import taobaobackend
from app.taobao.models import user as taobao_user
from app.taobao.forms import useroncechange
from pyapi.taobao.top import request
def authenticated(request, template):
  if request.method == 'post':
    form = useroncechange(request=request, data=request.post)
    if form.is_valid():
      request.user.username = form.cleaned_data['username']
      password = form.cleaned_data.get('password', none)
      if password:
        request.user.set_password(form.cleaned_data)
      request.user.save()
      #更新應用用戶綁定
      tb_user = request.user.taobao.all()[0]
      tb_user.has_bind_user=true
      tb_user.save()
      return httpresponseredirect(reverse('user'))
  top_session = request.get.get('top_session', none)
  top_parameters = request.get.get('top_parameters', none)
  top_sign = str(request.get.get('top_sign', none))
  #解析 top parameters
  if top_parameters:
    back_parameters = base64.decodestring(urllib.unquote(top_parameters))
    infos = dict(k.split("=") for k in back_parameters.split("&"))
    username = infos.get('visitor_nick', none)
    visitor_id = infos.get("visitor_id", none)
    # validate sign 認證返回值中的簽名
    local_sign_str = '%s%s%s%s' % (settings.taobao_app_key,
                    top_parameters,
                    top_session,
                    settings.taobao_app_secret)
    local_sign = base64.encodestring(md5(local_sign_str).digest())
    #注意 base64 encode后,字符串最后會有 \n 符, 因此需要清除才能驗證
    if top_sign == local_sign.strip(): # 清除 \n
      # 創建/返回淘寶賬戶
      tb_user, tb_user_created = taobao_user.objects.get_or_create(id=int(visitor_id),
                     nick=username)
      #建立系統用戶, 用戶名存在則創建隨機數擴展
      if tb_user.user_id is none:
        try:
          user.objects.get(username=username)
          django_user_username = username
          tb_user.has_bind_user = true
        except:
          django_user_username = '%s_%s' % (username, random.randint(1000, 10000))
        django_user, django_user_created = user.objects.get_or_create(username=django_user_username)
        if django_user_created:
          django_user.set_password(visitor_id)
          django_user.save()
        tb_user.user = django_user
      # 保存返回的信息:過期時間 token ts等
      tb_user.expires_in = datetime.datetime.now() + datetime.timedelta(seconds=int(infos.get("expires_in", 0)))
      tb_user.ts = infos.get("ts", '')
      tb_user.refresh_token = infos.get("refresh_token", '')
      tb_user.save()
      # update user profile in taobao auth backend
      user = auth.authenticate(id=tb_user.id, nick=tb_user.nick)
      if user:
        auth.login(request, user)
        #如果應用賬戶沒有綁定系統用戶,則用戶第一次時可以修改用戶名
        if not tb_user.has_bind_user:
          form = useroncechange(request=request,
                     initial={'username':tb_user.user.username,
                          'password':tb_user.id})
          return render(request, template, locals())
  return httpresponseredirect(settings.taobao_auth_url)

希望本文所述對大家基于django框架的python程序設計有所幫助。

原文鏈接:http://www.yihaomen.com/article/python/531.htm

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 单亲乱l仑在线观看免费观看 | 国外欧美一区另类中文字幕 | 鬼畜重口高h合集长短篇 | 亚洲第一免费播放区 | 欧美在线播放一区二区 | 香蕉久久一区二区三区啪啪 | 免费精品一区二区三区在线观看 | 经典三级四虎在线观看 | 国产精品久久99 | 久久伊人在 | 亚洲AV无码专区国产精品麻豆 | 国产综合久久 | 福利国产片 | 日本一卡2卡3卡4卡乱 | 91九色最新地址 | 国产欧美一区视频在线观看 | 亚洲国产精品成人久久 | 国产综合色在线视频区色吧图片 | 成品人视频w免费观看w | 成年无限观看onlyfans | 99精品在免费线视频 | 视频免费在线 | 久热这里只有精品99国产6 | 非洲一级毛片又粗又长aaaa | 国产精品自产拍在线观看2019 | 夫妻性生活一级黄色片 | 成人欧美视频在线看免费 | 欧美成人一区二区三区 | 亚洲精品国产国语 | 成年人视频在线播放 | 日本免费一区二区三区a区 日本免费三片在线观看 | 12-14娇小videos | 91无毒不卡| 日韩精品视频福利资源站 | 精品久久久麻豆国产精品 | 香蕉91| 日韩免费在线视频观看 | 26uuu老色哥 236宅宅2021最新理论 | 国产高清露脸学生在线观看 | 亚洲成年男人的天堂网 | 动漫美女隐私尿口图片 |