Access tokens have a limited lifetime specified by the session timeout in Salesforce. If an application uses an expired access token, a “Session expired or invalid” error is returned. If the application is using the Web server or user-agent OAuth authentication flows, a refresh token may be provided during authorization that can be used to get a new access token.
In simple terms, You login to your Facebook app or Salesforce one app once using your credentials . But it keeps you logged in forever that is because of refresh token. Access token expires after sometime based on your session settings. But using refresh token app gets new access token whenever it expires.