Exemple #1
0
    public static Response CheckUserIsNothAuthorisedByFacebookAnymore(NancyContext context)
    {
        long?facebookId = null;

        try
        {
            if (AuthenticatedUserNameHasValue(context))
            {
                facebookId = long.Parse(context.Items[SecurityConventions.AuthenticatedUsernameKey].ToString());
                var     user   = InMemoryUserCache.Get(facebookId.Value);
                var     client = new FacebookClient(user.AccessToken);
                dynamic me     = client.Get("me");
            }
        }
        catch (FacebookOAuthException)
        {
            //If an exception gets thrown the access token is no longer valid
            RemoveUserFromCache(context, facebookId);
            return(new Response()
            {
                StatusCode = HttpStatusCode.Unauthorized
            });
        }
        return(context.Response);
    }
Exemple #2
0
 private static void RemoveUserFromCache(NancyContext context, long?facebookId)
 {
     context.Items[SecurityConventions.AuthenticatedUsernameKey] = null;
     if (facebookId.HasValue)
     {
         InMemoryUserCache.Remove(facebookId.Value);
     }
 }
        public void SaveNotNullUserAndGetIt_ItIsReturned()
        {
            var userProfile = new UserProfile(1, "", "", "", null);
            var cache       = new InMemoryUserCache();

            cache.SaveUser(userProfile);
            var retrievedUser = cache.TryGetUser(1);

            Assert.IsNotNull(retrievedUser);
        }
Exemple #4
0
        public MainModule()
        {
            this.RequiresAuthentication();

            Get["/"] = parameters =>
            {
                var     facebookId = long.Parse(Context.Items[SecurityConventions.AuthenticatedUsernameKey].ToString());
                var     user       = InMemoryUserCache.Get(facebookId);
                var     client     = new FacebookClient(user.AccessToken);
                dynamic me         = client.Get("me");
                return("<h1>Welcome to Social Democracy! " + me.name + "</h1><p>You have logged in using facebook</p>");
            };
        }
        private void AddAuthenticatedUserToCache(string code, Guid userId)
        {
            var     oAuthClient    = GetFacebookOAuthClient();
            dynamic tokenResult    = oAuthClient.ExchangeCodeForAccessToken(code);
            string  accessToken    = tokenResult.access_token;
            var     facebookClient = new FacebookClient(accessToken);
            dynamic me             = facebookClient.Get("me?fields=id,name");
            long    facebookId     = Convert.ToInt64(me.id);

            InMemoryUserCache.Add(new FacebookUser
            {
                UserId      = userId,
                AccessToken = accessToken,
                FacebookId  = facebookId,
                Name        = (string)me.name,
            });
        }