Secure admin login flow

This commit is contained in:
Codex
2026-04-28 09:16:15 +08:00
parent 21cb5c9c15
commit 98e32a4385
15 changed files with 646 additions and 0 deletions
@@ -0,0 +1,51 @@
'use client'
import { useConfig } from '@payloadcms/ui'
import { formatAdminURL } from 'payload/shared'
export function AdminAvatarMenu() {
const {
config: {
admin: {
routes: { account: accountRoute, logout: logoutRoute },
},
routes: { admin: adminRoute },
},
} = useConfig()
const logoutHref = formatAdminURL({ adminRoute, path: logoutRoute })
const accountHref = formatAdminURL({ adminRoute, path: accountRoute })
return (
<span className="eversolo-admin-avatar-menu">
<span className="eversolo-admin-avatar-menu__initial" aria-hidden="true">
E
</span>
<span className="eversolo-admin-avatar-menu__panel">
<span className="eversolo-admin-avatar-menu__label">Account</span>
<button
className="eversolo-admin-avatar-menu__button"
onClick={(event) => {
event.preventDefault()
event.stopPropagation()
window.location.assign(logoutHref)
}}
type="button"
>
Log out
</button>
<button
className="eversolo-admin-avatar-menu__link"
onClick={(event) => {
event.preventDefault()
event.stopPropagation()
window.location.assign(accountHref)
}}
type="button"
>
Profile
</button>
</span>
</span>
)
}