前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django实战-小程序端注销和获取状态

Django实战-小程序端注销和获取状态

作者头像
小团子
发布2019-09-03 18:42:03
6200
发布2019-09-03 18:42:03
举报
文章被收录于专栏:数据云团

Django实战-小程序端cookie保存至storage

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

实现了小程序端的登录授权和Django服务端的 code2session 接口授权。

流程

1.使用微信小程序登录和获取用户信息Api接口

2.把Api获取的用户资料和code发送给django后端

3.通过微信接口把code换取成openid

4.后端将openid作为用户名和密码

5.后端通过JSON web token方式登录,把token和用户id传回小程序

6.小程序将token和用户id保存在storage中

下次请求需要验证用户身份的页面时,在header中加入token这个字段。

一、注销

① 服务端清除 session

小程序的注销可以通过向服务端发起清除 session 的请求。在小程序授权登录后,服务端是将 openid 标记在 session 中。

代码语言:javascript
复制
from django.http import JsonResponse
代码语言:javascript
复制
def logout(request):
    request.session.clear()
    response = wrap_json_response(code=ReturnCode.SUCCESS)
    return JsonResponse(data=response, safe=False)

服务端路由

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns = [
    path("logout", views.logout, name="logout"),
]

② 小程序端注销

二、获取状态

① 服务端判断用户是否已经授权

在用户登录授权中,服务端就已经用 is_authorized 在 session 中标记了登录成功的用户。

代码语言:javascript
复制
def already_authorized(request):
    is_authorized = False
    if request.session.get("is_authorized"):
        is_authorized = True
    return is_authorized

② 服务端判断用户是否已经登录

代码语言:javascript
复制
def get_status(request):
    if already_authorized(request):
        data = {"is_authorized": 1}
    else:
        data = {"is_authorized": 0}
    response = CommonResponseMixin.wrap_json_response(data=data, code=ReturnCode.SUCCESS)
    return JsonResponse(response, safe=False)

服务端路由

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns = [
    path("status", views.get_status, name="get_status"),
]

小程序端获取状态

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档