Я пытаюсь войти в систему с помощью OAuth2 через API FireBase Rest из сценария Google Apps.Я использую библиотеку apps-script-oauth2 и получил токен доступа с service.getAccessToken()
( см. Документацию getAccessToken ).
Однако, когда я публикую вконечная точка аутентификации со следующим кодом:
var oAuthService= getOAuthService();
const createUserWithOAuthUrl = 'https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyAssertion?key=' + <API_KEY>
const accessToken = oAuthService.getAccessToken()
Logger.log(accessToken)
const requestUri = 'https://script.google.com/macros/d/' + SCRIPT_ID + '/usercallback'
const payload = JSON.stringify({"postBody": "access_token=" + accessToken + "&providerId=google.com","requestUri":requestUri,"returnIdpCredential":true,"returnSecureToken":true})
Logger.log(payload)
const result = UrlFetchApp.fetch(createUserWithOAuthUrl, {
method: 'post',
contentType: 'application/json',
muteHttpExceptions: true,
// headers: {
// Authorization: 'Bearer ' + accessToken
// },
payload : payload
});
Я получаю эту ошибку:
"error": {
"code": 400,
"message": "INVALID_IDP_RESPONSE : Failed to fetch resource from https://www.googleapis.com/oauth2/v1/userinfo, http status: 401, http response: {\n \"error\": {\n \"code\": 401,\n \"message\": \"Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.\",\n \"status\": \"UNAUTHENTICATED\"\n }\n}\n",
Процесс OAuth, кажется, идет хорошо, когда я прохожу процесс выбора учетной записи / обзора областей иполучите авторизованное приглашение.
Я следовал за firebase rest auth api docs , и похоже, что я делаю это правильно, поэтому я не понимаю, почему его отклоняют,Какие-нибудь мысли?Есть ли способ проверить правильность моего access_token?Я запустил консоль, и это, безусловно, выглядит как токен.