- ABP Framework version: v8.1.0
- UI Type: Angular
- Database System: EF Core (SQL Server)
- Auth Server Separated (for Angular): yes
Hello
I am trying to implement the Passwordless solution, following the guidelines provided at https://community.abp.io/posts/implementing-passwordless-authentication-with-asp.net-core-identity-c25l8koj. It is for MVC application . I need to implement for angular. I have used separated auth server. Please provide more detail for passwordless authentication and generate url for angular application.
Thank you
3 Answer(s)
-
0
Hello,
please check similar issue https://support.abp.io/QA/Questions/6240/Angular-Passwordless if it helps you.
thanks
-
0
Hello
https://community.abp.io/posts/how-to-add-a-custom-grant-type-in-openiddict.-6v0df94z
I am trying the above solution but it is not working because I am using a separate auth server (openIddict). Please provide any proper solution for Passwordless authentication. My requirement is to first generate a passwordless login url and send it to the user in mail inbox and the user clicks on the passwordless login url then redirects to angular application with authentication.
thanks
-
0
Hi,
This article also applies to Angular UI https://community.abp.io/posts/implementing-passwordless-authentication-with-asp.net-core-identity-c25l8koj
You just need to redirect to the angular website in the
publicclassPasswordlessController.
For example:
using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.Identity; using Volo.Abp.Identity.AspNetCore; namespace PasswordlessAuthentication.Web.Controllers { public class PasswordlessController : AbpController { protected IdentityUserManager UserManager { get; } protected AbpSignInManager SignInManager { get; } public PasswordlessController(IdentityUserManager userManager, AbpSignInManager signInManager) { UserManager = userManager; SignInManager = signInManager; } public virtual async Task<IActionResult> Login(string token, string userId) { var user = await UserManager.FindByIdAsync(userId); var isValid = await UserManager.VerifyUserTokenAsync(user, "PasswordlessLoginProvider", "passwordless-auth", token); if (!isValid) { throw new UnauthorizedAccessException("The token " + token + " is not valid for the user " + userId); } await UserManager.UpdateSecurityStampAsync(user); await SignInManager.SignInAsync(user, isPersistent: false); var ngAppUrl = "http://localhost:4200/account/login" return Redirect(ngAppUrl); } } }