微博三方登陆-03.生成微博授权url接口
1.创建apps/oauth模块进行oauth认证#
1.1 在apps文件夹下新建应用: oauth#
cd syl/apps
python ../manage.py startapp oauth # 切换到apps文件夹下执行创建命令
1.2 添加子路由: oauth/urls.py#
from django.urls import path
from . import views
urlpatterns = [
]
1.3 在syl/settings.py中添加应用#
INSTALLED_APPS = [
'oauth.apps.OauthConfig',
]
1.4 在syl/urls.py主路由中添加#
urlpatterns = [
path('oauth/', include('oauth.urls')),
]
2.生成微博授权URL接口#
2.1 添加子路由: oauth/urls.py#
urlpatterns = [
path('weibo/', views.WeiboUrl.as_view()), # /oauth/weibo/ 返回微博登录地址
]
2.2 视图函数: oauth/views.py#
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
from rest_framework.views import APIView
from urllib.parse import urlencode
# 生成前端跳转到微博扫码页面的url
class WeiboUrl(APIView):
'''
生成微博的登陆页面路由地址
https://api.weibo.com/oauth2/authorize? # 微博oauth认证地址
client_id=4152203033& # 注册开发者id
response_type=code&
redirect_uri=http://127.0.0.1:8888/oauth/callback/ # 获取code后将code回 调给后端地址
'''
# 自定义权限类
permission_classes = (AllowAny,)
def post(self, request):
url = 'https://api.weibo.com/oauth2/authorize?' # 微博授权的 url地址
data = {
'client_id': '854392627', # WEIBO_APP_KEY,
'response_type': 'code',
'redirect_uri': 'http://127.0.0.1:8888/oauth/callback/', # VUE的回 调,微博后台授权的回调地址
}
weibo_url = url + urlencode(data)
# weibo_url 就是生成的下面这个url
# https://api.weibo.com/oauth2/authorize? client_id=4152203033&response_type=code&redirect_uri=http://127.0.0.1:8000/api/we ibo_back/
# return Response({'weibo_url': weibo_url})
return Response({'code': '0', 'msg': '成功', 'data': {'url': weibo_url}})
3.测试生成微博售前URL接口#
-
测试接口获取新浪微博地址#
-
http://192.168.56.100:8888/oauth/weibo/
-
-
在浏览器访问返回地址即可回到新浪扫码界面#
作者:就学45分钟
出处:https://www.cnblogs.com/tjw-bk/p/13788564.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
分类:
Django-项目开发
, 项目--三方登陆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了