VueGapi 在请求多个范围时啥都不做

Posted

技术标签:

【中文标题】VueGapi 在请求多个范围时啥都不做【英文标题】:VueGapi do nothing when requesting with multiple scopesVueGapi 在请求多个范围时什么都不做 【发布时间】:2021-12-17 04:23:53 【问题描述】:

这是我的 Vue3 main.js

app.use(VueGapi, 
    apiKey: 'MyApiKey',
    clientId: 'myClientId.apps.googleusercontent.com',
    discoveryDocs: ['https://clas-s-room.googleapis.com/$discovery/rest?version=v1'],
    scope: "https://www.googleapis.com/auth/clas-s-room.profile",
  )
app.mount('#app')

但是我需要提供很多范围,所以我做了

const SCOPES = ['https://www.googleapis.com/auth/clas-s-room.courses.readonly',
'https://www.googleapis.com/auth/clas-s-room.profile.emails',
      'https://www.googleapis.com/auth/clas-s-room.profile.photos',
      'https://www.googleapis.com/auth/clas-s-room.rosters',
      'https://www.googleapis.com/auth/clas-s-room.rosters.readonly'];

并将SCOPES 分配给scope

app.use(VueGapi, 
        apiKey: 'MyApiKey',
        clientId: 'myClientId.apps.googleusercontent.com',
        discoveryDocs: ['https://clas-s-room.googleapis.com/$discovery/rest?version=v1'],
        scope: SCOPES,
      )
    app.mount('#app')

从我的 vue 组件调用

this.$gapi.login().then(( currentUser, gapi, hasGrantedScopes ) => 
          console.log( currentUser, gapi, hasGrantedScopes )
        )

当我按下登录按钮时,仅当我将scope 设置为scope: "https://www.googleapis.com/auth/clas-s-room.profile" 之类的单数范围时才有效,但是当我将SCOPES 分配给scope 时,什么也没有发生(没有错误,没有什么)。我哪里做错了?

【问题讨论】:

【参考方案1】:

scope should be a space-delimited string.

试试

...
    scope: SCOPES.join(' ')
...

【讨论】:

哇哦,解决了...谢谢!

以上是关于VueGapi 在请求多个范围时啥都不做的主要内容,如果未能解决你的问题,请参考以下文章

pushViewController 在多个标签应用程序中啥都不做?

使用 v-if 时啥都不显示

运行可执行文件啥都不做

为啥#后跟一个数字似乎在C plus plus中啥都不做

请求位置时应用程序崩溃并且用户啥都不做

AFNetworking 2.0 设备离线时的队列请求 setReachabilityStatusChangeBlock 啥都不做