public static IResponseFormatter AuthenticateThisSession(this NancyModule module) { var code = (string)module.Request.Query["code"]; var token = Auth0Client.ExchangeCodeForAccessTokenAsync(new ExchangeCodeRequest { ClientId = ConfigurationManager.AppSettings["auth0:ClientId"], ClientSecret = ConfigurationManager.AppSettings["auth0:ClientSecret"], RedirectUri = ConfigurationManager.AppSettings["auth0:CallbackUrl"], AuthorizationCode = code }).ConfigureAwait(false).GetAwaiter().GetResult(); var userInfo = Auth0Client.GetUserInfoAsync(token.AccessToken).ConfigureAwait(false).GetAwaiter().GetResult(); var user = new Auth0User { AccessToken = token.AccessToken, UserToken = token.IdToken, UserId = userInfo.UserId, Name = userInfo.FullName, Nickname = userInfo.NickName, GravatarUrl = userInfo.Picture, Email = userInfo.Email, UserMetadata = userInfo.UserMetadata, AppMetadata = userInfo.AppMetadata }; Auth0Authentication.CreateAuthenticationSessionFor(user, module.Context.Request.Session); return(module.Response); }
public static IResponseFormatter AuthenticateThisSession(this NancyModule module) { var code = (string) module.Request.Query["code"]; var token = Auth0Client.ExchangeCodeForAccessTokenAsync(new ExchangeCodeRequest { ClientId = ConfigurationManager.AppSettings["auth0:ClientId"], ClientSecret = ConfigurationManager.AppSettings["auth0:ClientSecret"], RedirectUri = ConfigurationManager.AppSettings["auth0:CallbackUrl"], AuthorizationCode = code }).ConfigureAwait(false).GetAwaiter().GetResult(); var userInfo = Auth0Client.GetUserInfoAsync(token.AccessToken).ConfigureAwait(false).GetAwaiter().GetResult(); var user = new Auth0User { AccessToken = token.AccessToken, UserToken = token.IdToken, UserId = userInfo.UserId, Name = userInfo.FullName, Nickname = userInfo.NickName, GravatarUrl = userInfo.Picture, Email = userInfo.Email, UserMetadata = userInfo.UserMetadata, AppMetadata = userInfo.AppMetadata }; Auth0Authentication.CreateAuthenticationSessionFor(user, module.Context.Request.Session); return module.Response; }
public static void CreateAuthenticationSessionFor(Auth0User auth0User, ISession session) { var userId = auth0User.Claims.Get(_config.UserIdentifier); session[_config.CookieName] = userId; if (_users.ContainsKey(userId)) return; _users.Add(userId, auth0User); }
public static void RemoveAuthenticationFor(Auth0User auth0User, ISession session) { var userId = auth0User.Claims.Get(_config.UserIdentifier); if (session.ToList().Any(x => x.Key.Equals(_config.CookieName))) { session.Delete(_config.CookieName); } _users.Remove(userId); }
public static void CreateAuthenticationSessionFor(Auth0User auth0User, ISession session) { var userId = auth0User.Claims.Get(_config.UserIdentifier); session[_config.CookieName] = userId; if (_users.ContainsKey(userId)) { return; } _users.Add(userId, auth0User); }
public static IResponseFormatter AuthenticateThisSession(this NancyModule module) { var code = (string)module.Request.Query["code"]; var token = Auth0Client.ExchangeAuthorizationCodePerAccessToken(code, ConfigurationManager.AppSettings["auth0:CallbackUrl"]); var userInfo = Auth0Client.GetUserInfo(token); var user = new Auth0User { AccessToken = token.AccessToken, UserToken = token.IdToken, UserId = userInfo.UserId, Name = userInfo.Name, Nickname = userInfo.Nickname, GravatarUrl = userInfo.Picture, Email = userInfo.Email }; Auth0Authentication.CreateAuthenticationSessionFor(user, module.Context.Request.Session); return(module.Response); }
public static IResponseFormatter AuthenticateThisSession(this NancyModule module) { var code = (string) module.Request.Query["code"]; var token = Auth0Client.ExchangeAuthorizationCodePerAccessToken(code, ConfigurationManager.AppSettings["auth0:CallbackUrl"]); var userInfo = Auth0Client.GetUserInfo(token); var user = new Auth0User { AccessToken = token.AccessToken, UserToken = token.IdToken, UserId = userInfo.UserId, Name = userInfo.Name, Nickname = userInfo.Nickname, GravatarUrl = userInfo.Picture, Email = userInfo.Email }; Auth0Authentication.CreateAuthenticationSessionFor(user, module.Context.Request.Session); return module.Response; }