Google client.js Oauth2拒绝显示iFrame

时间:2015-01-09 19:56:58

标签: javascript iframe oauth-2.0 google-cloud-endpoints

背景: 我正在使用Google client.js来访问我创建的云端点项目。 当代码执行并返回应显示身份验证确认的iFrame时,我收到错误

  

拒绝展示" ......"在一个框架中因为它设置了X-Frame-Options'到' SAMEORIGIN'。

我知道这是一个防止内容恶意加载的安全功能,但我似乎无法弄清楚我哪里出错了。

var CLIENT_ID = "this is my id";
var SCOPES = "https://www.googleapis.com/auth/userinfo.email";

function init() {
    var apisToLoad;
    var loadCallback = function() {
        if (--apisToLoad == 0) {
            signin(true, userAuthed);
        }
    };

    apisToLoad = 2; // must match number of calls to gapi.client.load()
    apiRoot = '//' + window.location.host + '/_ah/api';
    gapi.client.load('business', 'v1', loadCallback, apiRoot);
    gapi.client.load('oauth2', 'v2', loadCallback);
}

signin = function(mode, callback) {
    gapi.auth.authorize({client_id: CLIENT_ID,
            scope: SCOPES, immediate: mode},
        callback);
};

function userAuthed() {
    var request =
        gapi.client.oauth2.userinfo.get().execute(function(resp) {
            if (!resp.code) {
                // User is signed in, call my Endpoint
                gapi.client.business.retrieve().execute(function(resp) {
                    console.log(resp);
                });
            }
        });
}

1 个答案:

答案 0 :(得分:0)

原来我使用了错误的api密钥。如果遇到此问题,请使用正确的api密钥。