ServiceStack OAuth - регистрация вместо логина
В реализации сервис-стека OAuth я видел только возможность автоматического входа с помощью eg. аккаунт в Фэйсбуке.
Но есть ли возможность поддержать процесс регистрации с помощью входа в Facebook. Я хотел, чтобы пользователи могли войти в приложение Facebook, а затем загрузить свое имя, фамилию и адрес электронной почты, а также предварительно заполнить необходимые текстовые поля для реальной регистрации на моем сайте (так как я также должен иметь подтверждение мобильного телефона и т. Д.). Я не хочу Пользователь должен быть авторизован и аутентифицирован при входе в систему через Facebook. Только учетные данные должны быть действительными для полного доступа к сайту.
Edit: Я нашел решение.
В FacebookProvider.cs
public override bool IsAuthorized(IAuthSession session, IOAuthTokens tokens, Auth request = null)
{
if (request != null)
{
if (!LoginMatchesSession(session, request.UserName)) return false;
}
return tokens != null && session.UserName!=null && !string.IsNullOrEmpty(tokens.AccessTokenSecret);
}
Улов был&& session.UserName!=null часть. Таким образом, мы можем проверить, вошел ли пользователь, используя учетные данные, это будет! = Null, и пользователь сможет использовать все сервисы. В противном случае это будет == ноль, и он может только получить информацию о фейсбуке от сессии.