Example #1
0
        public async Task <AuthorizationResponse> Register([FromBody] RegisterInModel registerInModel)
        {
            var isProviderTokenExist = Request.Headers.TryGetValue("ProviderToken", out var providerToken);

            if (isProviderTokenExist)
            {
                var providerTokenComponents = providerToken.ToString().Split(" ");
                if (providerTokenComponents.Length == 2)
                {
                    var regService = RegisterServiceFactory.GetRegisterServiceCenter(providerTokenComponents[0], providerTokenComponents[1], serviceProvider);
                    if (regService != null)
                    {
                        var user = await regService.RegisterUser(registerInModel);

                        var token = jwtTokenService.GenerateToken(regService.GetAuthCenterName(), jwtTokenService.GetIdentity(user.Id,
                                                                                                                              user.UserSecurities.First().AuthorizationCenterId,
                                                                                                                              await regService.GetProviderId()));
                        return(new AuthorizationResponse
                        {
                            Name = user.Name,
                            UserId = user.Id,
                            Token = token,
                        });
                    }
                    else
                    {
                        throw ExceptionFactory.SoftException(ExceptionEnum.AuthCenterNotFound, "AuthCenterNotFound");
                    }
                }
                else
                {
                    throw ExceptionFactory.SoftException(ExceptionEnum.InvalidProviderTokenFormat, "InvalidProviderTokenFormat");
                }
            }
            else
            {
                throw ExceptionFactory.SoftException(ExceptionEnum.ProviderTokenAbsent, "ProviderToken");
            }
        }