本文主要是介绍多个域名指向同一个业务 或者多个域名对应多个业务场景 在一处登录所有域名同时登录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
因为公司多个域名对应了同一个网站,而且网站支持二维码扫描登录。
域名不一样就会参数错误,所以想了一个办法解决,做单点登录。
假如我们有2个域名 https://a.com 和 https://b.com
一 前端请求https://a.com 获取后端的token
二 前端使用 form 表单提交 我们的token 到 https://a.com/transfer
,一定要使用form表单形式 如果不是form 表单无法跳转 可以自己对比下区别
三 后端 获取token 并转发到另一个域名 https://b.com,如果有多个域名可以把当前域名拼接上去,因为我只有2个域名只拼接了token 这个地方使用 响应头的 location 和状态码实现前端自动发起请求
request_token = request.data.get('token')headers = {"location": f"{REDISRECT_HOST}/api/v2/background/enterprise/user/set_token/?token={request_token}"}# headers = {"location": "https://liaozeng.com/"}return Response(headers=headers, status=status.HTTP_302_FOUND)
四 当通过302 使用https://b.com 域名请求地址 这个时候 通过 cookie 同步登录
r = HttpResponse()r.set_cookie("SET_TOKEN", value=token, secure=True)
最后 同样使用 302 跳转会 https://a.com
如多有多个域名的话 原理一样 也可以做一个 专门登录的单点登录平台 原理一样 可自行设计
这篇关于多个域名指向同一个业务 或者多个域名对应多个业务场景 在一处登录所有域名同时登录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!