2017-02-19 15 views
0

Я столкнулся с несколькими ресурсами в Интернете, где аутентификация Google выполняется через веб-api.Аутентификация Google в asp.net mvc - Не удалось получить redirectUrl для входа в Google

Итак, я хотел попробовать аналогично в asp.net mvc web app аналогичным образом. Я застрял посередине о том, как получить redirectUri для моего приложения.

1.App зарегистрирован в google, clientid и secret упоминается в Authconfig.cs.

2.Нажмите кнопку мыши, чтобы перейти на страницу GoogleSignIn. RedirectUrl (authrequestUrl), который приведет пользователя к странице входа, - это то, что я не получаю.

В Web api, запрашивающий ниже url (запрос GET) вернет redirectUrl в качестве ответа.
http://localhost:xxxx/api/Account/ExternalLogin?returnUrl=%2f&generateState=true

, который я могу использовать для перенаправления пользователя на страницу входа в систему Google после нажатия кнопки входа в систему из моего входа в систему.

MyLogin.cshtml

<body> 
    <row> 
    <button id="GoogleBtn" type="button" class="col-md-5 btn">Google</button> 
    </row> 
</body> 
<script type="text/javascript"> 
$document.ready(function() 
{ 
    $('#GoogleBtn').click(function() 
    { 
     window.location.href="RedirectUrl" 
    }); 
}); 
</script> 

В ASP.NET MVC, существует два действия - внешний вход и externallogincallback

Вызов внешнего login- http://localhost:49837/Account/ExternalLogin?provider=Google&returnUrl=%2f вернется ошибка -» Требуемое поле формы для защиты от подделки «__RequestVerificationToken» отсутствует ».

Вызов externallogincallback- http://localhost:49837/Account/ExternalLoginCallback?provider=Google&returnUrl=%2f&generateState=true будет перенаправлять на другой View (~/Views/Account/Login), где она содержит кнопку для Google. После нажатия этой кнопки он принимает меня в Google SignInPage со всеми параметрами запроса для обработки и входа.

Я хочу, чтобы мое приложение перенаправлялось непосредственно на страницу входа в систему Google, не переходя на учетную запись/вход в систему, а затем перенаправляется на страницу входа в систему после нажатия кнопки Google.

Кто-то поможет мне в том, как получить redirectUrl для моего приложения mvc.

Update:

Запрос URL OAuth/Google знак в URL запроса является то, что я был искал, я запуталась с redirectUrl. Я нашел способ для построить запрос Url, и я успешно сделал вызов, используя javascript.

+0

Redirect URI является страница, Google вернет аутентификацию. Он установлен в консоли разработчика Google для ваших учетных данных.Это не то, что вы получаете. – DaImTo

+0

Спасибо, что нашли время и ответили. Я на самом деле пытался заставить RequestUrl выполнять запрос присяги на Google Signin, который я назвал redirectUrl на протяжении всего моего вопроса. –

+0

Мне просто интересно, почему вы используете JavaScript вместо официального Google. Чистая клиентская библиотека. – DaImTo

ответ

0

Этот код позволяет мне сделать запрос Oauth на страницу входа в систему Google.

MyLogin.cshtml

<row> 
     <button id="GoogleBtn" type="button" class="col-md-5 btn btn-danger" onclick="googleLogin()">Google</button> 
    </row> 

<script type="text/javascript"> 

    var OAUTHURL = 'https://accounts.google.com/o/oauth2/auth?'; 
    var VALIDURL = 'https://www.googleapis.com/oauth2/v1/tokeninfo?access_token='; 
    var SCOPE = 'https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email'; 
    var CLIENTID = 'xxxxxxxxxxxmyclientidxxxxx.apps.googleusercontent.com'; 
    var REDIRECT = 'http://myapp.local/dashboard'; 
    var LOGOUT = 'http://myapp.local/logout'; 
    var TYPE = 'token'; 
    var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE; 

    function googleLogin() 
    { 
    window.location = _url; 
    } 

</script> 

 Смежные вопросы

  • Нет связанных вопросов^_^