示例#1
0
        public async Task <IActionResult> Callback(string code, string state)
        {
            string sessionState = HttpContext.Session.GetString(Constants.GIT_HUB_AUTH_STATE_SESSION_KEY);

            if (sessionState != null && sessionState == state)
            {
                string token = await GetAuthToken(code, state);

                HttpContext.Session.SetString(
                    Constants.GIT_HUB_AUTH_TOKEN_SESSION_KEY, token);

                Result <string> loginResult = await _gitHubClient.GetLoginAsync(token);

                if (loginResult.Success)
                {
                    HttpContext.Session.SetString(Constants.GIT_HUB_LOGIN_KEY, loginResult.Data);
                }
            }
            return(Redirect("/"));
        }