You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go Buffalo框架的模板中判断访客是否已登录?

在Go Buffalo模板中判断访客登录状态的内置方法

Buffalo 提供了两种直接的内置方式来在模板中判断访客是否登录:

1. 使用 current_user 变量

当你通过 Buffalo 自带的认证生成工具(buffalo generate auth)搭建认证系统后,框架会自动在请求上下文中注入当前登录用户,模板里可直接通过 current_user 变量判断:

<%= if current_user %>
  <div>欢迎回来,<%= current_user.Username %>!</div>
<% else %>
  <a href="/login">请登录</a>
<% end %>

如果你的用户模型不是默认的 User(比如自定义为 Member),变量名会自动变为 current_member,以此类推。

2. 使用 authenticated() 辅助函数

Buffalo 还内置了 authenticated() 函数,无需传参就能直接返回布尔值,判断当前请求是否已认证:

<%= if authenticated() %>
  <nav>
    <a href="/profile">个人中心</a>
    <a href="/logout">退出登录</a>
  </nav>
<% else %>
  <nav>
    <a href="/login">登录</a>
    <a href="/signup">注册</a>
  </nav>
<% end %>

自定义认证场景的注意事项

如果是自己实现的认证逻辑,需要在认证中间件中手动将用户信息存入请求上下文,比如:

c.Set("current_user", loggedInUser)

这样模板中就能正常访问 current_user 变量进行判断。

内容的提问来源于stack exchange,提问作者anon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 15:20:28