我需要在我的页面中登录google。我得到了我的clientID并在Google Console中设置了redirect_uri路径,但是当我尝试登录时,它给了我以下错误。我正在我的asp.net页面上集成它。
错误: 那是一个错误 错误:redirect_uri_mismatch
适用范围:odiyaDoctor
您可以通过以下电子邮件向该应用程序的开发人员发送电子邮件:odiyadoctor@gmail.com
请求中的重定向URI:http://localhost/immediateHelp.aspx与注册的重定向URI不匹配。
我的要求是用户将在第一页(UserLogin.aspx
)上通过谷歌登录,成功登录后,下一页(i.e.immediateHelp.aspx
)将会到来。我正在解释下面的所有代码和Google凭据。
UserLogin.aspx:
<a href="#" class="btn btn-large btn-block btn-google" onclick="googleLogin();" >Login with Google <i class="fa fa-google-plus"></i></a>
<script>
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 = '*************************g96b1elfa8.apps.googleusercontent.com';
var REDIRECT = 'http://localhost/immediateHelp.aspx';
var LOGOUT = 'http://accounts.google.com/Logout';
var TYPE = 'token';
var _url = OAUTHURL + 'scope=' + SCOPE + '&client_id=' + CLIENTID + '&redirect_uri=' + REDIRECT + '&response_type=' + TYPE;
var acToken;
var tokenType;
var expiresIn;
var user;
var loggedIn = false;
function googleLogin() {
var win = window.open(_url, "windowname1", 'width=800, height=600');
var pollTimer = window.setInterval(function () {
try {
console.log(win.document.URL);
if (win.document.URL.indexOf(REDIRECT) != -1) {
window.clearInterval(pollTimer);
var url = win.document.URL;
acToken = gup(url, 'access_token');
tokenType = gup(url, 'token_type');
expiresIn = gup(url, 'expires_in');
win.close();
validateToken(acToken);
}
} catch (e) {
console.log('its error', e);
}
}, 500);
}
function validateToken(token) {
$.ajax({
url: VALIDURL + token,
data: null,
success: function (responseText) {
getUserInfo();
loggedIn = true;
window.location.href = "immediateHelp.aspx";
},
dataType: "jsonp"
});
}
function getUserInfo() {
$.ajax({
url: 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=' + acToken,
data: null,
success: function (resp) {
user = resp;
console.log('user info',user);
$('#imgHolder').attr('src', user.picture);
},
dataType: "jsonp"
});
}
function gup(url, name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regexS = "[\\#&]" + name + "=([^&#]*)";
var regex = new RegExp(regexS);
var results = regex.exec(url);
if (results == null)
return "";
else
return results[1];
}
</script>
在上面的页面中,下面的错误出现在catch部分。
http://localhost:3440/UserLogin.aspx:92:32 UserLogin.aspx:103其错误DOMException:阻止具有原点“http://localhost:3440”的帧访问跨源帧。 在错误(本机)
在Google中设置的clientID。
Web应用程序的客户端ID
Client ID
***************************************1ctsjaeg96b1elfa8.apps.googleusercontent.com
Client secret
*********oGbT13hv3S
Redirect URIs
https://localhost/immediateHelp.aspx
JavaScript origins
https://localhost
我需要在用户成功登录时,它会重定向到immediateHelp.aspx
页面,在此页面中,用户可以进行注销。请帮我解决这些错误。
答案 0 :(得分:0)
tcl::mathop::**
网址必须是完美的字符