Packages
phoenix_kit
1.1.0
1.7.208
1.7.207
1.7.206
1.7.205
1.7.204
1.7.203
1.7.202
1.7.201
1.7.200
1.7.199
1.7.198
1.7.197
1.7.196
1.7.194
1.7.193
1.7.192
1.7.191
1.7.190
1.7.189
1.7.187
1.7.186
1.7.185
1.7.184
1.7.183
1.7.182
1.7.181
1.7.180
1.7.179
1.7.178
1.7.177
1.7.176
1.7.175
1.7.174
1.7.173
1.7.172
1.7.171
1.7.170
1.7.169
1.7.168
1.7.167
1.7.166
1.7.165
1.7.164
1.7.162
1.7.161
1.7.160
1.7.159
1.7.157
1.7.156
1.7.155
1.7.154
1.7.153
1.7.152
1.7.151
1.7.150
1.7.149
1.7.146
1.7.145
1.7.144
1.7.143
1.7.138
1.7.133
1.7.132
1.7.131
1.7.130
1.7.128
1.7.126
1.7.125
1.7.121
1.7.120
1.7.119
1.7.118
1.7.117
1.7.116
1.7.115
1.7.114
1.7.113
1.7.112
1.7.111
1.7.110
1.7.109
1.7.108
1.7.107
1.7.106
1.7.105
1.7.104
1.7.103
1.7.102
1.7.101
1.7.100
1.7.99
1.7.98
1.7.97
1.7.96
1.7.95
1.7.94
1.7.93
1.7.92
1.7.91
1.7.90
1.7.89
1.7.88
1.7.87
1.7.86
1.7.85
1.7.84
1.7.83
1.7.82
1.7.81
1.7.80
1.7.79
1.7.78
1.7.77
1.7.76
1.7.75
1.7.74
1.7.71
1.7.70
1.7.69
1.7.66
1.7.65
1.7.64
1.7.63
1.7.62
1.7.61
1.7.59
1.7.58
1.7.57
1.7.56
1.7.55
1.7.54
1.7.53
1.7.52
1.7.51
1.7.49
1.7.44
1.7.43
1.7.42
1.7.41
1.7.39
1.7.38
1.7.37
1.7.36
1.7.34
1.7.33
1.7.31
1.7.30
1.7.29
1.7.28
1.7.27
1.7.26
1.7.25
1.7.24
1.7.23
1.7.22
1.7.21
1.7.20
1.7.19
1.7.18
1.7.17
1.7.16
1.7.15
1.7.14
1.7.13
1.7.12
1.7.11
1.7.10
1.7.9
1.7.8
1.7.7
1.7.6
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.20
1.6.19
1.6.18
1.6.17
1.6.16
1.6.15
1.6.14
1.6.13
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.5.2
1.5.1
1.5.0
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.2
1.3.1
1.3.0
1.2.10
1.2.9
1.2.8
1.2.7
1.2.5
1.2.4
1.2.2
1.2.1
1.2.0
1.1.0
1.0.0
A foundation for building Elixir Phoenix apps — SaaS, social networks, ERP systems, marketplaces, and more
Current section
Files
Jump to
Current section
Files
lib/phoenix_kit_web/components/layouts/app.html.heex
<%!--
PhoenixKit App Layout Example
This layout demonstrates how to access PhoenixKit authentication data
within your application layouts. This example shows both traditional
and scope-based approaches for accessing user information.
--%>
<%!-- Only show header on non-admin pages --%>
<%= if not String.contains?(assigns[:current_path] || "", "/admin/") do %>
<header class="px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between border-b border-zinc-100 py-3 text-sm">
<div class="flex items-center gap-4">
<a href="/" class="text-lg font-semibold">
PhoenixKit
</a>
<p class="bg-blue-50 text-blue-700 rounded-full px-2 font-medium leading-6">
v{Application.spec(:phoenix_kit, :vsn)}
</p>
</div>
<%!-- User info display - shows how to access user data in layouts --%>
<div class="flex items-center gap-2 text-sm text-zinc-600">
<%!-- Scope-based authentication (recommended approach) --%>
<%= if assigns[:phoenix_kit_current_scope] && PhoenixKit.Users.Auth.Scope.authenticated?(@phoenix_kit_current_scope) do %>
<span class="bg-green-100 text-green-800 px-2 py-1 rounded">
Logged in as: {PhoenixKit.Users.Auth.Scope.user_email(@phoenix_kit_current_scope)}
</span>
<% else %>
<span class="bg-gray-100 text-gray-600 px-2 py-1 rounded">
Not authenticated
</span>
<% end %>
<%!--
Legacy option: Basic user check (backwards compatibility)
If you're still using :phoenix_kit_mount_current_user, this approach works:
<%= if @phoenix_kit_current_user do %>
<span class="bg-green-100 text-green-800 px-2 py-1 rounded">
Logged in as: {@phoenix_kit_current_user.email}
</span>
<% else %>
<span class="bg-gray-100 text-gray-600 px-2 py-1 rounded">
Not authenticated
</span>
<% end %>
To use scope approach, update your router:
live_session :default,
layout: {MyAppWeb.Layouts, :app},
on_mount: [{PhoenixKitWeb.Users.Auth, :phoenix_kit_mount_current_scope}] do
# your routes
end
Benefits of scope approach:
- Better encapsulation of authentication state
- Explicit authentication checks
- Ready for future extensions (roles, permissions, etc.)
- Type safety with proper struct
--%>
</div>
</div>
</header>
<% end %>
<%!-- <main class="px-4 sm:px-6 lg:px-8">
<div class="mx-auto max-w-2xl">
<.flash_group flash={@flash} />
{@inner_content}
</div>
</main>--%>
{@inner_content}