Я использую это:Google EndPoint Аутентификация с Firebase от Google App Engine - Нет аутентификации маркер не содержится в запросе HTTP
- Front End с помощью Google App Engine (GAE) в яваскрипта разделе
<script src="https://www.gstatic.com/firebasejs/3.6.8/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: "XXXXX",
authDomain: "id-aplication.firebaseapp.com",
databaseURL: "https://id-aplication.firebaseio.com",
storageBucket: "id-aplication.appspot.com",
messagingSenderId: "00000"
};
firebase.initializeApp(config);
</script>
function init(){
\t var apiRoot = "//id-aplication.appspot.com/_ah/api";
\t gapi.client.load('Api', "v1", callback, apiRoot);
\t
}
function createUserFirebase(){ \t
\t var user = firebase.auth().currentUser;
\t var request = gapi.client.Api.createUserFirebase(user);
\t request.execute(callBackResponse);
}
function callback(){
\t
\t btn = document.getElementById("input_create_user_firebase");
\t btn.onclick=function(){createUserFirebase();};
\t btn.value="Click me for Create User Firebase";
\t
}
- BackEnd с G oogle Облако EndPoint
@Api(name = "Api",
\t version = "v1",
\t namespace =
\t \t @ApiNamespace(
\t \t \t ownerDomain = "api.example.com",
\t \t \t ownerName = "api.example.com", packagePath = ""),
\t issuers = {
@ApiIssuer(
name = "firebase",
issuer = "https://securetoken.google.com/id-aplication",
jwksUri = "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]")
},
issuerAudiences = {
@ApiIssuerAudience(name = "firebase", audiences = "id-aplication")}
)
\t public class SharedRoadApi {
\t \t @ApiMethod(
\t \t \t name = "firebase_user",
\t \t \t httpMethod = ApiMethod.HttpMethod.GET,
\t \t \t authenticators = {EspAuthenticator.class},
\t \t \t issuerAudiences = {@ApiIssuerAudience(name = "firebase", audiences = {"id-aplication"})}
\t \t \t )
\t \t public Email firebase_user(User user) throws UnauthorizedException {
\t \t \t if (user == null) {
\t \t \t throw new UnauthorizedException("Invalid credentials");
\t \t \t }
\t \t \t Email response = new Email();
\t \t \t response.setEmail(user.getEmail());
\t \t \t return response;
\t \t }
\t }
- Аутентификация с Firebase
следующие шаги:
- Войти с Firebase аутентификации
- Вызвать метод Java в Google Cloud EndPoint, и это не дают в messae «Недействительные учетные данные», это значит, что аутентифицировать
- Но даже если вы входите метод даст ошибку,
ком .google.api.server.spi.auth.EspAuthenticator Аутентификация: Ошибка аутентификации: com.google.api.auth.UnauthenticatedException: нет аутентификации маркер не содержится в запросе HTTP (EspAuthenticator.java:86)
Буду признателен, если кто-нибудь скажет мне, что мне делать конкретно или добавить, большое спасибо.
Привет, Wencheng, gapi.client - это то, как вы называете любое приложение Google EndPoint, а @Api (name = «Api»), в этом случае имя моего приложения «Api» - причина, по которой вы используете gapi .client.Api и createUserFirebase - это, наконец, java-метод, который я создаю. –
Это должен быть комментарий, а не ответ. – VPK
Глядя на ошибку, кажется, что клиент Javascript не прикрепляет токен аутентификации с запросом. Для аутентификации запроса конечным точкам требуется, чтобы JWT подключался с заголовком HTTP-заголовка HTTP в формате «Авторизация: предъявитель $ {JWT}». Если вы используете Javascript-клиент в браузере, можете ли вы открыть консоль dev, чтобы узнать, какие заголовки установлены в исходящем HTTP-запросе?В Chrome это можно найти на вкладке сети. –