Имя пользователя, полученное от поставщика услуг, - , а не - хороший первичный ключ для вашего клиентского приложения. Имена пользователей могут быть переработаны (например, Yahoo! повторно выдает свои оставленные имена новым активным пользователям), и тогда у вас возникнет серьезная проблема с конфиденциальностью. OAuth 2.0 не предназначен для использования в качестве протокола аутентификации, поэтому у вас возникла эта проблема.
Гораздо лучше сначала зарегистрировать пользователя на своем собственном сайте (возможно, с использованием OpenID 2.0, который предоставляет надежные заявленные идентификаторы, которые можно использовать в качестве первичного ключа), , а затем отправить их на сервер авторизации для получить разрешение на доступ к своим личным данным.
Фактически, в некоторых случаях вы даже можете комбинировать аутентификацию OpenID с авторизацией OAuth через расширение OpenID + OAuth. Затем вы получаете и надежный Идентификатор Заявки, который вы можете использовать в качестве имени пользователя, и токен доступа OAuth, который впоследствии можете использовать для получения других данных пользователя.
Но чтобы ответить на ваш вопрос под другим углом, не беспокойтесь о хранении токена доступа в вашей базе данных, пока не узнаете имя пользователя. Поэтому, если вам нужно получить имя пользователя из службы, используйте свой токен доступа (все еще только в памяти), чтобы вызвать веб-API сервера ресурсов для получения имени пользователя пользователя (это зависит от того, какую службу вы вызываете), тогда у вас есть имя пользователя для хранения токенов доступа и обновления.