最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

djangoserver之间通过remoteuser相互调用方法

来源:动视网 责编:小采 时间:2020-11-27 14:24:50
文档

djangoserver之间通过remoteuser相互调用方法

djangoserver之间通过remoteuser相互调用方法:首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系。某些情况下彼此需要获取对方的数据。但是我们的应用肯经都会有对应的鉴权机制。不会让人家随随便便就访问的对吧。好比上车要刷卡(滴,老人卡~~~)。我们知道在浏览器用户登陆后,
推荐度:
导读djangoserver之间通过remoteuser相互调用方法:首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系。某些情况下彼此需要获取对方的数据。但是我们的应用肯经都会有对应的鉴权机制。不会让人家随随便便就访问的对吧。好比上车要刷卡(滴,老人卡~~~)。我们知道在浏览器用户登陆后,


首先,场景是这样的:存在两个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后,会自动登录也就无法定向到登录页面。这就需要我们重新设计用户登录的逻辑。

文档

djangoserver之间通过remoteuser相互调用方法

djangoserver之间通过remoteuser相互调用方法:首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系。某些情况下彼此需要获取对方的数据。但是我们的应用肯经都会有对应的鉴权机制。不会让人家随随便便就访问的对吧。好比上车要刷卡(滴,老人卡~~~)。我们知道在浏览器用户登陆后,
推荐度:
标签: 方法 使用 之间
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top