LifeAct
@LifeAct
Создаем и раскручиваем, не ставим на конвейер

Как залогиниться от ВК в ASP MVC5?

Всем привет! Использую ASP MVC5, AspNet.Identity и Необходимо залогиниться от ВК используя OAUTH

Пока на локале пробую (express iis)

Вот что сделал:

1) Создал в вк приложение "веб сайт", Open API - включен, Адрес сайта: http://localhost:1729; Базовый домен : localhost; Доверенный redirect URI: - пусто, так как если что угодно заполнить выдает ошибку;

2) Установил пакет Owin.Security.Providers.VKontakte (https://github.com/TerribleDev/OwinOAuthProviders)

3) В Startup.Auth.cs указал:
app.UseVKontakteAuthentication("372323899", "vdQOYlASDfsagNhBr0vOAUX");

4) Нажимаю - joxi.ru/YmEkNxCZ7pJ7A6 секунд 20 делает что то и все то же окно, смотрю в консоль - joxi.ru/zAN5kgIlLY6W29
Когда дебагом проходился, то видно все работает, он получает токен, но вероятно из за того что Доверенный redirect URI не настроен не переводит куда нужно, ну и я хочу взять инфу о логине пользователя и имейле и создать ему учетку на сайте.... Ну и не переводит на страницу вк для того чтобы спросить - "предоставить доступ приложению"....

Ребят помогите, с меня дабл пиво

-------
UP

вижу на вкладке сеть ошибка доступа dl3.joxi.net/drive/2017/11/22/0000/0020/4116/16/f3... может с локала не хочет, пробану выкинуть на сервер
  • Вопрос задан
  • 1561 просмотр
Пригласить эксперта
Ответы на вопрос 1
LifeAct
@LifeAct Автор вопроса
Создаем и раскручиваем, не ставим на конвейер
Все, задача решена, с помощью https://github.com/DukeNuken/Duke.Owin.VkontakteMi... все делается сполпинка:

Add nuget package - search for "Duke.Owin.VkontakteMiddleware"
Add module in Startup.Auth.cs of your mvc 5 project
app.UseVkontakteAuthentication("{AppId}", "{AppSecret}", "{PERMISSIONS}");

{PERMISSIONS} - it is the comma-separated string. For example "email,audio" More info here vk.com/dev/permissions

// GET: /Account/ExternalLoginCallback
        [AllowAnonymous]
        public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
        {
            var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
            if (loginInfo == null)
            {
                return RedirectToAction("Login");
            }

            // Sign in the user with this external login provider if the user already has a login
            var result = await SignInManager.ExternalSignInAsync(loginInfo, isPersistent: false);
            switch (result)
            {
                case SignInStatus.Success:
                    return RedirectToLocal(returnUrl);
                case SignInStatus.LockedOut:
                    return View("Lockout");
                case SignInStatus.RequiresVerification:
                    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = false });
                case SignInStatus.Failure:
                default:
                    // If the user does not have an account, then prompt the user to create an account
                    ViewBag.ReturnUrl = returnUrl;
                    ViewBag.LoginProvider = loginInfo.Login.LoginProvider;
                    return View("ExternalLoginConfirmation", new ExternalLoginConfirmationViewModel { Email = loginInfo.DefaultUserName });
            }
        }


Единственное вылазит вот такая ошибка - https://github.com/DukeNuken/Duke.Owin.VkontakteMi... хоть конкретно для меня она не существенна, я сразу регистрирую по полученным данным локальную учетку. Но хорошо бы все таки решить
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы