IdentityServer 4,如何添加自定义登录页面
Posted
技术标签:
【中文标题】IdentityServer 4,如何添加自定义登录页面【英文标题】:IdentityServer 4, how to add Custom Login page 【发布时间】:2020-04-23 06:09:44 【问题描述】:我希望自定义 IdentityServer 4 并使用自定义页面进行登录/注册/丢失密码等...(仅供参考,我使用 Blazor,但应该是一样的!)。
示例 例如,现在,我使用以下代码:
Challenge(authProps, "oidc");
但它会重定向到预定义的登录页面,我该如何更改?
信息 查了一些资料,看到有人用下面这个
.UserInteraction.LoginUrl = "http://..../MyLoginPage";
我的问题是我使用 abp.io,他们提供了一个 IdentityServer,但我无法访问 AddIdentityServer 代码,它在某处被硬编码,我没有访问它(AbpIdentityServerDomainModule.cs)!
所以,我正在寻找一种重新定义登录页面的方法!
【问题讨论】:
你能发布初始化代码吗?我的意思是你如何设置 adp ? 你可以删除这个问题,它是重复的。对不起 你能给我们这个问题的重复链接吗? 【参考方案1】:只需在 Startup.cs 中添加以下内容
services.ConfigureApplicationCookie(config =>
config.Cookie.Name = "IdentityServer.Cookie";
config.LoginPath = "/Auth/Login";
config.LogoutPath = "/Auth/Logout";
);
【讨论】:
使用自定义 Angular 页面登录怎么样? 没关系。您可以有一个 API 端点将此路由映射到您的函数,然后您可以使用 fetch 或类似的方式查询路由。 有什么例子吗?提前致谢。 例如,您可以在控制器中执行如下操作: [Route("Auth/Login")] [HttpPost] public async IActionResult Foo(@Params) // 代码逻辑 然后您可以从您的客户端访问:http.post('host:port/Auth/Login', username, password)【参考方案2】:您可以通过实施脚手架来解决您的问题。
身份服务器文档说 “包含 Identity 的应用程序可以应用脚手架来选择性地添加 Identity Razor 类库 (RCL) 中包含的源代码。您可能希望生成源代码,以便修改代码并更改行为。”
因此您可以根据需要更改 UI、端点及其行为。
Here is doc link
【讨论】:
以上是关于IdentityServer 4,如何添加自定义登录页面的主要内容,如果未能解决你的问题,请参考以下文章
IdentityServer4 - AuthorizeAttribute 不验证 JWT 令牌/自定义用户存储
如何在 IdentityServer4 中创建自定义授权类型
IdentityServer4中自定义控制器和CustomClientStore的CORS问题