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 RemoveAuthenticationFromThisSession(this NancyModule module)
        {
            var userInstance = module.Context.CurrentUser.ToUserModel();

            Auth0Authentication.RemoveAuthenticationFor(userInstance, module.Session);

            return(module.Response);
        }
Exemple #3
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);
        }