2025-1-28 09:41:02

༺ཌ༈小小程序员☠阿新༈ད༻の公告

博主闭关修炼中,暂停博客更新。如果本博客对您有帮助,麻烦动动小手点个推荐&关注,如果能请博主喝杯奶茶就更好了 ≥^▽^≦

前后端联调,生成微博授权URL接口

 

1|01.创建apps/oauth模块进行oauth认证

'''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oauth # 切换到apps文件夹下执行创建命令 '''2.2 添加子路由: oauth/urls.py''' from django.urls import path from . import views urlpatterns = [ ] '''2.3 在syl/settings.py中添加应用''' INSTALLED_APPS = [ 'oauth.apps.OauthConfig', ] '''2.4 在syl/urls.py主路由中添加''' urlpatterns = [ ​ path('oauth/', include('oauth.urls')), ]

2|02.生成微博授权URL接口

2|11.1 添加子路由: oauth/urls.py

urlpatterns = [ path('weibo/', views.WeiboUrl.as_view()), # /oauth/weibo/ 返回微博登录地址 ]

2|21.2 syl/settings.py 中配微博地址

1.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=app key3& # 注册开发者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': '自己微博的app key', # 微博 App Key 'response_type': 'code', 'redirect_uri': '设置回调地址', # VUE的回 调,微博后台授权的回调地址 } weibo_url = url + urlencode(data) # https://api.weibo.com/oauth2/authorize? client_id=1234565&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|03.测试生成微博售前URL接口

  • 测试接口获取新浪微博地址
http://192.168.56.100:8888/oauth/weibo/

  • 在浏览器访问返回地址即可回到新浪扫码界面
https://api.weibo.com/oauth2/authorize? client_id=3516473472&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A808 0%2Fweibo_callback

4|04.在Vue页面加载时动态发送请求获取微博授 权url

4|11.1 在 components\common\lab_header.vue 中写oauth动态获取微 博授权URL

// 获取微博登录地址 oauth() { // 从后端获取 微博登录地址 oauth_post().then((resp) => { console.log(resp) //{'code': '0', 'msg': '成功', 'data': {'url': url}} ​ let url = resp.data.url; this.weibo_url = url; ​ }) },

4|21.2 在vue的mounted函数中调用获取微博授权url函数

mounted() { this.oauth() },

4|31.3 点击"登录"弹出的form表单中加入url

<form action="/login" method="post" \> <div class="form-group widget-signin"> <a :href="weibo_url"><i class="fa fa-weibo"></i></a> </div> </form>
 
 
分类: django
标签: Django
 

__EOF__

本文作者小小程序员阿新
本文链接https://www.cnblogs.com/qx1996liu/p/13962350.html
关于博主:喜欢读书、旅行、爬山。评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   小小程序员阿新  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
阅读排行:
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用

本站勉强运行 1909 天 16 小时 03 分 13 秒

点击右上角即可分享
微信分享提示