我需要登錄扔我的網頁谷歌。我得到了我的clientID並在Google Console中設置了redirect_uri路徑,但是當我嘗試登錄時,它給了我以下錯誤。我正在將其整合到我的asp.net頁面上。redirect_uri_mismatch錯誤的谷歌API,同時嘗試登錄使用C#asp.net
Error: 400. That’s an error.
Error: redirect_uri_mismatch
Application: odiyaDoctor
You can email the developer of this application at: [email protected]
The redirect URI in the request: http://localhost/immediateHelp.aspx did not match a registered redirect 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>
在波紋管誤差在閉鎖段即將上述頁面。 Web應用
at http://localhost:3440/UserLogin.aspx:92:32 UserLogin.aspx:103 its error DOMException: Blocked a frame with origin " http://localhost:3440 " from accessing a cross-origin frame. at Error (native)
clientID set in google.
客戶端ID
Client ID
***************************************1ctsjaeg96b1elfa8.apps.googleusercontent.com
Client secret
*********oGbT13hv3S
Redirect URIs
https://localhost/immediateHelp.aspx
JavaScript origins
https://localhost
在這裏,我需要在用戶成功登錄,它會重定向到immediateHelp.aspx
頁面,該頁面中,用戶可以做logout.Please幫我解決這些錯誤。
在谷歌開發者控制檯,您需要添加http://localhost/immediateHelp.aspx作爲重定向URI – DaImTo
@ Dalm要:我在上面已經加入後。檢查。 – satya
「請求中的重定向URI:http://localhost/immediateHelp.aspx與註冊的重定向URI不匹配。」谷歌並不說謊,你沒有它。 – DaImTo