Packages
livebook
0.16.2
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.6
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.3
0.17.2
0.17.1
0.17.0
0.16.4
0.16.3
0.16.2
0.16.1
0.16.0
0.15.5
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.7
0.14.6
0.14.5
0.14.4
0.14.3
0.14.2
0.14.1
0.14.0
0.14.0-rc.1
0.14.0-rc.0
0.13.3
0.13.2
0.13.1
0.13.0
0.12.1
0.12.0
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.2
0.1.1
0.1.0
Automate code & data workflows with interactive notebooks
Current section
Files
Jump to
Current section
Files
lib/livebook_web/controllers/auth_html/index.html.heex
<div class="h-screen w-full px-4 py-8 bg-gray-900 flex justify-center items-center">
<div class="max-w-[400px] w-full flex flex-col">
<a href={~p"/"} class="mb-2 -ml-2">
<img src={~p"/images/logo.png"} height="96" width="96" alt="livebook" />
</a>
<div class="mb-2 text-xl text-gray-100 font-medium">
Authentication required
</div>
<div class="mb-8 text-sm text-gray-200">
<p :if={@authentication_mode == :password}>
Type password to access the Livebook.
</p>
<div :if={@authentication_mode == :token} class="space-y-2">
<%= if Livebook.Config.app?() do %>
<p>
Please open Livebook menu in your taskbar, click "Copy URL", and paste it in your browser's address bar.
</p>
<% else %>
<p>
Please check out the console for authentication URL or type the token directly
here.
</p>
<% end %>
<p>
To use password authentication, set the <code>LIVEBOOK_PASSWORD</code>
environment variable.
</p>
</div>
</div>
<div class="text-gray-50 w-full">
<form method="post" class="flex flex-col w-full">
<input type="hidden" value={Phoenix.Controller.get_csrf_token()} name="_csrf_token" />
<div>
<input
:if={@authentication_mode == :password}
type="password"
name="password"
class={[
"px-4 py-2 w-full border rounded-lg bg-transparent",
if @errors == [] do
"border-gray-500 text-gray-300 placeholder-gray-400"
else
"border-red-600 text-red-600 placeholder-red-600"
end
]}
placeholder="Password"
autofocus
/>
<input
:if={@authentication_mode == :token}
type="text"
name="token"
class={[
"px-4 py-2 w-full border rounded-lg bg-transparent",
if @errors == [] do
"border-gray-500 text-gray-300 placeholder-gray-400"
else
"border-red-600 text-red-600 placeholder-red-600"
end
]}
placeholder="Token"
autofocus
/>
<span :for={error <- @errors} class="mt-1 text-red-600 text-sm">
{translate_error(error)}
</span>
</div>
<button
type="submit"
class="mt-4 py-2 w-full rounded-lg text-gray-200 bg-blue-600 hover:bg-blue-700 focus:bg-blue-700"
>
<span>Authenticate</span>
<.remix_icon icon="arrow-right-line" class="ml-1 align-middle" />
</button>
</form>
</div>
</div>
</div>