自定义django oauth后端,用于ressource服务器下载完整的用户数据fom授权服务器

oauth-slave-accounts的Python项目详细描述


如果您在oauth上阅读过rfc或者(更有可能)阅读过django oauth工具包文档,您就会知道ressource server对 将用户身份验证委托给authorization server

但是,django oauth toolkit中的当前实现只从其中的authorization server复制用户名 数据库。这意味着所有用户都没有特殊权限,即当您访问 ressource服务器

fulluseroauthbackend类的目的是通过在 您访问了ressource服务器

安装

pip安装oauth从帐户

设置

授权服务器

您需要创建一个以json方式公开用户数据的端点(或者进一步重写我的方法),最简单的是 一个djangorestframework modelviewset。 当前实现使用用户的授权令牌作为查找字段。

classUserViewSet(viewset.ReadOnlyModelViewSet):queryset=User.objects.all()serializer_class=UserSerializerpermission_classes=[ServerServerPermission]defget_object(self):returnAccessToken.objects.get(token=self.kwargs.get('pk')).user
pro tip: you should exclude the password from the serializer, because its confidential even if salted, and furthermore its useability probably depends on the SECRET_KEY

资源服务器

子类
  • 属性获取URL:描述授权服务器获取用户数据的端点的字符串,例如http://auth.srv/user/{}/
  • userserializer属性:一个djangorestframework序列化程序,它定义如何解析authorization server的响应
  • 和可选的
    • 方法get_auth_token()
    • 方法refresh_auth_token()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java理解泛型   java Guava:如何自定义减少多重映射?   java无法构建实体管理器工厂JPA/Hibernate   不区分大小写的LDAP搜索   在java中同时调用所有类对象中的方法   java做高级数字计算?2.1k等于2100等。。?   java Camel netty组件:未能创建选择器   exceljava。lang.ClassCastException:ExcelStreamAction无法强制转换为com。开放交响乐团。xwork2。行动   java避免对嵌套a4j:区域进行验证   java如何使一帧在1秒内显示50次,每次显示时消失   java一个HashMap的遍历,我得到NullPointerException   windows HP Stream 8平板电脑。。。Java swing JScrollPane滚动在触摸屏上不工作   java如何在运行时根据用户/程序员的需要自动增加数组的大小?