使用Google API客户端库在Chrome扩展中进行OAuth 2身份验证

kknvjkwl  于 2024-01-04  发布在  Go
关注(0)|答案(3)|浏览(199)

我试图建立一个Chrome扩展访问谷歌驱动器,其中OAuth 2身份验证请求是通过使用谷歌API客户端库的JavaScript进行。我的extensition已经在谷歌开发者控制台注册。

manifest.json

  1. "background": {
  2. "page": "background.html"
  3. },

字符串

background.html

  1. <script type="text/javascript" src="jquery-1.10.2.min.js"></script>
  2. <script type="text/javascript" src="https://apis.google.com/js/client.js"></script>
  3. <script type="text/javascript" src="google_auth/initiation.js"></script>

initiation.js

  1. var CLIENT_ID = 'MY_CLIENT_ID';
  2. var SCOPES = 'https://www.googleapis.com/auth/drive.file';
  3. jQuery(window).load(function() {
  4. gapi.auth.authorize({
  5. client_id: CLIENT_ID,
  6. scope: SCOPES,
  7. immediate: false
  8. }, function(authResult) {
  9. if (authResult && !authResult.error) {
  10. window.alert('Auth was successful!');
  11. } else {
  12. window.alert('Auth was not successful');
  13. }
  14. }
  15. );
  16. });


当在浏览器中加载或重新加载扩展时,会出现一个弹出窗口,我会收到来自Google的响应消息:
这是一个错误。
错误:invalid_client
应用程序:MyExtension
事实上,我想知道如果选择谷歌API客户端库为我的Chrome扩展是正确的,有任何东西失踪与我的实现错误。

ecfsfe2w

ecfsfe2w1#

我没有足够的声誉来评论,但如果你的initiation.js是逐字逐句。你应该替换'MY_CLIENT_ID'和CLIENT_ID与客户端ID,你在谷歌注册应用程序时收到这里https://console.developers.google.com/
它看起来像这样:858545004388-tlfkq1hfdbuiductlb0qdvjds4s949gt.apps.googleusercontent.com
这就是Error:invalid_client告诉你的。

bfnvny8b

bfnvny8b2#

Web身份验证协议利用HTTP功能,但Chrome应用程序在应用程序容器内运行;它们不会通过HTTP加载,也无法执行重定向或设置Cookie。
使用Google身份https://developer.chrome.com/apps/app_identity

gopyfrb3

gopyfrb33#

在2023年,google js API客户端将不适用于Chrome扩展,使用GAPI的唯一方法是将整个js文件本身与bundle一起发布,因为在manifest v3上不允许外部脚本。你最好自己简单地调用端点,摆脱混乱。

相关问题