2017-06-07 51 views
3

我们的注册过程是一个调用.NET Core API的Angular2应用程序。注册后,我们想在Identityserver4中自动登录用户,而不是简单地将用户重定向到登录页面,他/她将需要再次输入用户名/密码。在Identityserver4注册后自动登录用户

是否有其他人设法使此工作?大多数其他解决方案似乎都使​​用Identityserver3实施。

+2

除了易用性:你为什么要这样做?我想确切地知道,我的用户输入的电子邮件地址实际上是他或她之前让他进入系统的原因有几个:凭证可能会发送到错误的地址(打字错误),并在注册完成后立即被破坏,或者有人可以使用不是他们的地址来惹恼某人,或者密码重置将不会因为地址中的错字而起作用,或...... –

+1

@RickvandenBosch有些系统对经过验证的电子邮件帐户非常不满。 Reddit例如会在注册后登录你。作为他们业务需求的一部分,Reddit会让他们的产品进入更好,而不是要求人们验证他们的电子邮件。这取决于你的用例。 tl; dr您的域中有效的电子邮件有多严重,您想要一个低摩擦的注册过程有多严重?我猜想这种折腾可能会引导OP决定以某种方式走这条路。 – Lutando

+1

@RickvandenBosch有效的点,但注册过程实际上是多个步骤。此时用户已经确认了电子邮件地址。 –

回答

1

您需要做的就是在控制器内的注册操作中对用户进行注册,并对此负责。换句话说,你在一个类似的对待你的登记控制器的方法来使用此方法是如何对待你的登录控制器方法:

await HttpContext.Authentication.SignInAsync() 

这种方法基本上是准备HttpContext当您返回相应IActionResult用一个cookie发出您的浏览器从中。我相信你已经看过this或类似的东西。只需在注册方法中做同样的事情。

+0

感谢您的回答!你确定这可以在客户端应用程序中完成,而不仅仅在identityServer中完成吗? –