解决authentik注销流程重定向策略'flow_plan'未定义错误
解决authentik注销后重定向的策略顺序问题
问题根源
你现在把重定向策略直接绑到了注销Flow上,策略会在Flow刚启动的时候就执行,这时候注销Stage还没运行,flow_plan对象根本没初始化,所以才会报未定义的错误。必须让策略等注销操作完成后再触发。
解决方法
通过authentik UI调整
- 打开authentik后台的Flows页面,找到你的注销Flow(
nouveau-invalidation-flow) - 进入该Flow的Stages标签页,找到已绑定的注销Stage(
nouveau-invalidation-stage) - 点击Stage右侧的Bindings按钮,进入Stage的绑定设置页面
- 点击Create,选择你的重定向策略(
nouveau-redirect-policy),设置任意Order值(比如10,只要绑定到Stage上就会在Stage执行后触发) - 删除原来直接绑定到Flow上的策略绑定,避免重复执行
修改YAML配置
移除原来绑定到Flow的策略绑定,新增一个绑定到注销Stage的策略绑定。修改后的关键配置如下:
# 移除原Flow策略绑定 # - attrs: # enabled: true # group: bea3a21e-5c8e-42cf-ac80-03eb07e3c858 # timeout: 30 # conditions: [] # id: null # identifiers: # order: 100 # pk: fda33932-856f-41ea-9d9c-989748d19441 # policy: 68ecaf99-0d18-48bb-956b-b69df515a685 # target: be191d0e-a41b-483b-aa79-d570ed2022bb # model: authentik_policies.policybinding # state: present # 新增绑定到注销Stage的策略绑定 - attrs: enabled: true group: bea3a21e-5c8e-42cf-ac80-03eb07e3c858 timeout: 30 conditions: [] id: null identifiers: order: 10 pk: <新UUID> # 留空让系统自动生成即可 policy: 68ecaf99-0d18-48bb-956b-b69df515a685 target: 73056828-cff0-4ec6-af49-e72feaf1df0d # 此处为注销Stage的PK model: authentik_policies.policybinding state: present
验证
修改完成后测试注销流程:用户注销时会先完成会话失效操作,再触发重定向策略,此时flow_plan已初始化,plan.redirect()可正常生效。
内容的提问来源于stack exchange,提问作者Mark Wagner
相关产品推荐
相关产品推荐

