Beispiel #1
0
        public async Task <TokenResponseModel> Authenticate([FromBody] TokenRequestModel request)
        {
            var user = await Store.PasswordVerifyAsync(request.Identifier, request.Password);

            if (user != null)
            {
                await EventSender.SendAsync(new UserAuthenticated
                {
                    UserIdentifierTopic = request.Identifier
                });

                SecurityContext.AssumeUser(user);

                return(new TokenResponseModel
                {
                    Token = JWT.CreateUserToken(user, request.ClientClaims),
                    User = user,
                    Organization = await OrganizationStore.GetOneAsync(request.Identifier)
                });
            }
            else
            {
                throw new SecurityException();
            }
        }