获取服务器身份验证访问令牌的正确方法,供客户端使用谷歌分析

时间:2015-10-04 13:40:10

标签: oauth oauth-2.0 google-oauth google-analytics-api

我有一个全局帐户,我想在服务器端使用多个视图,为客户端的各种视图嵌入仪表板。根据我的理解,我在服务器端使用服务帐户获取访问令牌,然后可以在需要时将访问令牌发送到客户端。我在想,这是正确的流程吗?访问令牌应该是每个会话吗?

显示在客户端的授权here有一个服务器身份验证访问令牌的字段,但找不到我想要的确切流量的文档。基本上我不确定生成该服务器身份验证访问令牌的正确方法是什么。任何帮助/指针将非常感激。

2 个答案:

答案 0 :(得分:3)

defined是如何设置服务器端身份验证的示例。当有人访问该网站时,上述代码会创建一个新令牌。您可以看到获取该访问令牌的端点Here

以下是了解工作版本的一般步骤:

第1步:创建服务帐户并下载JSON密钥

第2步:在Google Analytics中以用户身份添加服务帐户

第3步:使用JSON密钥数据来请求访问令牌

<script>
(function(w,d,s,g,js,fs){
  g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}};
  js=d.createElement(s);fs=d.getElementsByTagName(s)[0];
  js.src='https://apis.google.com/js/platform.js';
  fs.parentNode.insertBefore(js,fs);js.onload=function(){g.load('analytics');};
}(window,document,'script'));
</script>

回到客户端:

第4步:加载Embed API库。

<div id="chart-1-container"></div>
<div id="chart-2-container"></div>

步骤5 :添加HTML容器以托管仪表板组件。

  /**
   * Authorize the user with an access token obtained server side.
   */
  gapi.analytics.auth.authorize({
    'serverAuth': {
      'access_token': '{{ ACCESS_TOKEN_FROM_SERVICE_ACCOUNT }}'
    }
  });
  ...

第6步:编写信息中心代码。

使用步骤3中获取的访问令牌授权Embed API。

gapi.analytics.ready(function(){

actionButton

创建返回令牌的端点的额外工作取决于您的后端实现,但可以找到演示的源代码here

答案 1 :(得分:1)

我对Google Analytics并不十分熟悉,但就OAuth而言,访问令牌和刷新令牌的处理都应该在服务器端。客户端接收授权代码并将其提供给服务器,然后服务器获取令牌并使用令牌获取必要的数据。不需要向客户端发送访问令牌。

阅读本文可能会有所帮助,它描述了标准的OAuth流程: has been some discussion