Inheritance: IUserIdentity
        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);
        }
Example #4
0
        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 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);
        }
Example #6
0
        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);
        }
Example #7
0
        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;
        }