@model ConsentModel
@{
ViewBag.Title = "授权确认";
Layout = null;
var appName = Model.Application?.DisplayName ?? "未知应用";
var clientLogo = Model.Application?.Properties?["Logo"]?.AsString;
var userName = Model.UserInfo?.Name ?? User.Identity?.Name ?? "当前用户";
var avatar = Model.UserInfo?.Avatar;
}
<!DOCTYPE html>
<html lang="zh-Hans">
<head>
<title>授权确认 - 认证中心</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" href="@Url.Content("~/css/global.css")" asp-append-version="true"/>
</head>
<body class="consent-page">
<div class="container">
<div class="header">
<h1>授权确认</h1>
<p>请确认是否允许 <strong>@appName</strong> 访问您的账户信息</p>
</div>
<div class="consent-summary">
<div class="consent-summary-item">
<div class="consent-summary-label">登录账户</div>
<div class="consent-summary-value">
@if (!string.IsNullOrWhiteSpace(avatar))
{
<img src="@avatar" alt="@userName" class="consent-summary-avatar" loading="lazy"/>
}
<span>@userName</span>
</div>
</div>
<div class="consent-summary-item">
<div class="consent-summary-label">请求应用</div>
<div class="consent-summary-value">
@if (!string.IsNullOrWhiteSpace(clientLogo))
{
<img src="@clientLogo" alt="@appName" class="consent-summary-logo" loading="lazy"/>
}
<span>@appName</span>
</div>
</div>
<div class="consent-summary-item">
<div class="consent-summary-label">请求权限</div>
<div class="consent-summary-value">
@if (Model.Scopes?.Any() == true)
{
foreach (var scope in Model.Scopes)
{
<span class="tag">@scope</span>
}
}
else
{
<span class="consent-help">此应用未显式请求额外作用域</span>
}
</div>
</div>
</div>
<div class="consent-help">
你可以在“授权管理”中随时撤销已授予的权限。
</div>
<div class="consent-help" style="margin-bottom: 24px;">
授权仅限于本平台账户信息范围。
</div>
<form method="post" asp-action="Accept" autocomplete="off" data-submit-loading="true">
<div class="action-buttons">
<button type="submit" class="submit-button" data-loading-text="授权处理中...">同意授权</button>
<a class="cancel-button" href="@(Model.ReturnUrl ?? Url.Action("Index", "Home"))">暂不授权</a>
</div>
@foreach (var item in Context.Request.Query)
{
<input type="hidden" name="@item.Key" value="@item.Value" />
}
</form>
</div>
<script src="@Url.Content("~/js/ui-components.js")" asp-append-version="true"></script>
</body>
</html>