django server之间通过remote user相互调用方法

高洛峰
发布: 2017-03-27 16:47:17
原创
1925人浏览过

首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系。某些情况下彼此需要获取对方的数据。

但是我们的应用肯经都会有对应的鉴权机制。不会让人家随随便便就访问的对吧。好比上车要刷卡(滴,老人卡~~~)。我们知道在浏览器用户登陆后,每次请求都会对应的session,server可以根据对用的session判断用户的权限信息。但是我们不容易在server端使用,可能存在session失效时间等问题。

所以动手查看django官方文档,发现django提供remote user机制,可以支持server之间的远程调用。只需要在setting中添加如下设置:


MIDDLEWARE_CLASSES = (
    '...',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.RemoteUserMiddleware',
    '...',
)

AUTHENTICATION_BACKENDS = (
   'django.contrib.auth.backends.RemoteUserBackend',
)
登录后复制

满心欢喜测试了一下,发现还是不行~~~(我就知道没这么简单)

还差一步,在setting添加一行,在环境变量中添加REMOTE_USER的用户名,注意jerry是系统中已经存在的一个用户


os.environ['REMOTE_USER'] = "jerry"
登录后复制

完成,这样在请求中没有session信息,或通过session判断用户没有登陆时,就会自动使用上面的REMOTE_USER用户登录。这样我们就有了一个公用的上车卡,但是为了安全我们可能需要给这个用户设定一些权限限制。(这样就算上了车,也只能没有作为只能站着,哈哈)

但是这样也可能带来一些问题,比如我们在其他接口中判断当前用户是否登录,如果没有就从定向到登录界面。但是采用REMOTE_USER后,会自动登录也就无法定向到登录页面。这就需要我们重新设计用户登录的逻辑。

 

以上就是django server之间通过remote user相互调用方法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号