public async Task <IActionResult> AuthenticateWithTwitch([FromBody] AuthenticateWithTwitchModel model)
        {
            var result = await userService.Authenticate(model.AccessToken).ConfigureAwait(false);

            if (result.State == ResultState.Failure)
            {
                return(BadRequest(result.FailureReason));
            }

            var bearerToken = GenerateToken(result);

            return(Ok(result.Data.Map(bearerToken)));
        }
Example #2
0
        private async Task <bool> LoginWithTwitchToken()
        {
            var twitchAccessToken = await applicationStateManager.GetTwitchAccessToken().ConfigureAwait(false);

            if (twitchAccessToken == null)
            {
                return(false);
            }

            var model = new AuthenticateWithTwitchModel {
                AccessToken = twitchAccessToken
            };
            var response = await apiGateway.Post <UserAuthenticatedModel, AuthenticateWithTwitchModel>(model, "Users", "AuthenticateWithTwitch").ConfigureAwait(false);

            if (response == null)
            {
                return(false);
            }

            await FinalizeLogin(response).ConfigureAwait(false);

            return(true);
        }