IdentityServer4和SPA应用程序以及新用户注册



处理SPA(Angular(应用程序的新用户注册的正确方法是什么?我正在使用IdentityServer4对我的API进行身份验证(代码流(和授权,并且运行良好。然而,我不确定新用户应该在哪里注册,特别是我希望新用户在注册后自动登录,换句话说,我不希望他们在注册后进入日志屏幕。注册应该在SPA应用程序中处理,还是在IdentityServer的特殊视图中处理?在任何一种情况下,我如何在之后获得JWT令牌以允许访问我的API?

提前谢谢。

您希望在Identity Server项目中处理注册。您可以向AccountController.cs类添加两个新方法,这两个方法将类似于该类中的Login*方法,一个用于加载页面,另一个用于处理注册输入。

假设您使用Microsoft Identity管理用户帐户,则可以让您的注册端点从注册页面获取信息,在数据库中创建Identity,然后调用登录端点调用的相同登录方法。类似的东西

// Do model validation, verify the user doesn't already exist, etc...
...
var createUser = await _userManager.CreateAsync(new ApplicationUser
{
Email = model.UserName,
NormalizedEmail = model.UserName,
UserName = model.UserName,
FirstName = model.FirstName,
LastName = model.LastName
}, model.Password);
var user = await _userManager.FindByEmailAsync(model.UserName);
if (createUser.Succeeded)
{
// Add roles to the user
await _userManager.AddToRoleAsync(user, "Customer");
var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, false, lockoutOnFailure: false);
...
// You'll want to redirect back to the client site to complete the login process

相关内容

最新更新