Modifying the Menu to Display Links Based on the Authorization Status
We can use the is_logged_in
variable in the menu.html
to ensure that the appropriate links are displayed based on the user's authentication status. The updated template will be as follows:
<!--menu.html-->
<nav class="navbar navbar-default">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="/">
Home
</a>
</div>
<ul class="nav navbar-nav">
{{ if .is_logged_in }}
<!--Display this link only when the user is logged in-->
<li><a href="/article/create">Create Article</a></li>
{{end}}
{{ if not .is_logged_in }}
<!--Display this link only when the user is not logged in-->
<li><a href="/u/register">Register</a></li>
{{end}}
{{ if not .is_logged_in }}
<!--Display this link only when the user is not logged in-->
<li><a href="/u/login">Login</a></li>
{{end}}
{{ if .is_logged_in }}
<!--Display this link only when the user is logged in-->
<li><a href="/u/logout">Logout</a></li>
{{end}}
</ul>
</div>
</nav>
With these changes, the Create Article
and Logout
links will be visible only to users who are logged in while the Register
and the Login
links will be visible only to unauthenticated users.