日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python调用qq互联_Django项目中实现使用qq第三方登录功能

發布時間:2025/4/16 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python调用qq互联_Django项目中实现使用qq第三方登录功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用qq登錄的前提是已經在qq互聯官網創建網站應用并獲取到QQ互聯中網站應用的APP ID和APP KEY

1,建路由

# qq登錄

path('loginQq/',qq.loginQq,name='loginQq/'),

path('returns/',qq.returns,name='returns/'),

2,前端頁面寫qq登錄的鏈接,本文沒有用圖標,暫時使用a鏈接請求。

? QQ登錄

3,在項目的應用下創建utils文件夾并創建function.py用于封裝函數,封裝的函數用于從返回數據中提取openid(騰訊公司數據庫里面的用戶id)

封裝的函數內容如下;

import re

def parse_jsonp(jsonp_str):

try:

return re.search('^[^(]*?\((.*)\)[^)]*$', jsonp_str).group(1)

except:

raise ValueError('無效數據!')

4,后臺代碼

from django.shortcuts import render,redirect,HttpResponse,HttpResponseRedirect

from blog.models import Member

from urllib import parse

from urllib import request as req

import re

import json

import random

from blog.utils import function

def loginQq(request):

state = str(random.randrange(100000,999999)) # 定義一個隨機狀態碼,防止跨域偽造攻擊。

request.session['state'] = state # 將隨機狀態碼存入Session,用于授權信息返回時驗證。

client_id = '101716344' # QQ互聯中網站應用的APP ID。

# 對回調地址進行編碼,用戶同意授權后將調用此鏈接。

callback = parse.urlencode({'redirect_uri':'http://127.0.0.1:8000/blog/returns'}) #redirect_uri=http%3A%2F%2F127.0.0.1%3A8000%2Fblog%2Freturns

# 組織QQ第三方登錄鏈接

login_url = 'https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=%s&%s&state=%s'%(client_id,callback,state)

return HttpResponseRedirect(login_url) # 重定向到QQ第三方登錄授權頁面

def returns(request):

if request.session['state'] == request.GET['state']: # 驗證狀態碼,防止跨域偽造攻擊。

code = request.GET['code'] # 獲取用戶授權碼

client_id = '101716344' # QQ互聯中網站應用的APP ID。

client_secret = '7f42aaac69f866750078fbe1edd9d2a4' # QQ互聯中網站應用的APP Key。

callback = parse.urlencode({'redirect_uri': 'http://127.0.0.1:8000/blog/returns'})

# 對回調地址進行編碼,用戶同意授權后將調用此鏈接。

login_url = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&code=%s&client_id=%s&client_secret=%s&%s' % (code, client_id, client_secret, callback) # 組織獲取訪問令牌的鏈接

# return HttpResponse(login_url)

response = req.urlopen(login_url).read().decode() # 打開獲取訪問令牌的鏈接 access_token:123456789&

access_token = re.split('&', response)[0] # 獲取訪問令牌 access_token:123456789

res = req.urlopen('https://graph.qq.com/oauth2.0/me?' + access_token).read().decode() # 打開獲取openid的鏈接

openid = json.loads(function.parse_jsonp(res))['openid'] # 從返回數據中獲取openid 410225632333335556566

userinfo = req.urlopen('https://graph.qq.com/user/get_user_info?oauth_consumer_key=%s&openid=%s&%s' % (

client_id, openid, access_token)).read().decode() # 打開獲取用戶信息的鏈接

# 打印查看獲取到的用戶信息

print(userinfo)

userinfo = json.loads(userinfo) # 將返回的用戶信息數據(JSON格式)讀取為字典。

user = Member.objects.filter(member_qq_id=openid) # 查詢是否已存在用戶

if not user: # 如果不存在用戶

# 創建新用戶

member_obj = Member.objects.create(member_qq_id=openid,member_nickname=userinfo['nickname'],member_name=userinfo['nickname'],member_photo = userinfo['figureurl_qq_1'])

# user = Member() # 創建新用戶

# user.member_qq_id = openid # 寫入用戶信息

# user.member_nickname = userinfo['nickname'] # 寫入用戶信息

# user.member_name = userinfo['nickname'] # 寫入用戶信息

# # user.gender = userinfo['gender'] # 寫入用戶信息

# user.member_photo = userinfo['figureurl_qq_1'] # 寫入用戶信息

# user.save() # 保存或更新用戶

request.session['member_id'] = member_obj.member_id # 將已登錄的用戶openid寫入Session

request.session['member_name'] = userinfo['nickname']

# 返回路徑至網站首頁

return redirect('/blog/index/')

else:

return HttpResponse('授權失敗!')

本文是在本地測試項目中的qq登錄功能,所以qq互聯官網中的回調地址需要修改為本地的地址,

5,啟動項目測試功能

6,查看數據庫會員表,會員信息已寫入。

總結

以上所述是小編給大家介紹的Django項目中實現使用qq第三方登錄功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

總結

以上是生活随笔為你收集整理的python调用qq互联_Django项目中实现使用qq第三方登录功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成年在线视频 | 91视频在线免费看 | 奇米影视第四色888 免费观看a毛片 | 中文写幕一区二区三区免费观成熟 | 免费无码av片在线观看 | 国产一区二区三区免费在线观看 | 亚洲免费观看视频 | 久久国产精品偷 | 亚洲青草视频 | 成人在线手机视频 | 99草在线视频 | 日韩激情电影在线 | 欧美69式性猛交 | 国产精品欧美一区喷水 | 波多野结av衣东京热无码专区 | 免费观看久久久 | 国产做爰xxxⅹ久久久精华液 | 亚洲一区视频在线 | 黄色日韩网站 | 日本高清免费观看 | 久久九九99 | 青青视频免费观看 | 成人免费片 | 久久久精品免费 | 黄瓜视频在线免费观看 | 免费观看亚洲 | 激情五月婷婷在线 | 国产成人免费 | 99久久免费看精品国产一区 | 粉豆av | 法国空姐在线观看完整版 | 奶水旺盛的少妇在线播放 | 韩国黄色大片 | 中文字幕国产亚洲 | 51 吃瓜网| 国产一区二区网 | 解开人妻的裙子猛烈进入 | 欧美午夜网站 | 天天干天天操天天舔 | 国产成人精品视频在线观看 | 大学生高潮无套内谢视频 | 性――交――性――乱a | 青青草视频偷拍 | 国产二区三区 | 97国产精品人人爽人人做 | cao我| 久草热线 | 最新日韩精品 | 久在线观看 | 日本欧美中文字幕 | 精品人妻无码专区在线 | 中文一二三区 | 欧美五月| 青青青青草 | 国产片网站 | 超碰人人在线观看 | 九九在线| 精品国产91乱码一区二区三区 | 欧美日韩亚洲综合 | 一级黄色片免费在线观看 | 神马午夜我不卡 | 国产视频一二三区 | 免费黄色小说视频 | 免费人成视频在线播放 | 午夜影院免费视频 | 国产精品久久久久久99 | 少妇又色又紧又爽又刺激视频 | 男人和女人做爽爽视频 | 91国内精品野花午夜精品 | 国产精品jizz在线观看软件 | 亚洲天天操 | 亚洲成人久久精品 | 海角社区登录 | 日本一二三区视频 | 久久久久久中文 | 国产h片在线观看 | 久久99精品久久只有精品 | 亚洲av无码一区二区三区人妖 | 嫩草伊人| 亚洲制服一区二区 | 最新中文字幕在线观看 | 欧美性视频一区二区 | 肌肉猛男裸体gay网站免费 | 日本乱子伦 | 99久久久无码国产精品性波多 | 五月天久久久久 | 成人做爰视频www网站小优视频 | 亚洲黄色小说图片 | 四川话毛片少妇免费看 | 亚洲欧洲国产精品 | 三级色网站 | 少妇高潮喷水在线观看 | 性视频免费看 | 国产一区二区三区久久 | 狠狠操在线观看 | 欧洲成人精品 | 97成人在线观看 | 色哟哟一区二区三区四区 | 性色欲情网站iwww九文堂 |