Создайте пользовательский токен Firebase с помощью JWT - PullRequest
1 голос
/ 11 июня 2019

Для создания пользовательских токенов Firebase я использую стороннюю библиотеку JWT (https://github.com/jwtk/jjwt)

. В этой библиотеке есть возможность добавить пользовательские утверждения токенов Firebase, такие как (alg, iss, sub, aud)., и т. д.)

Вся информация о пожарной базе доступна на https://firebase.google.com/docs/auth/admin/create-custom-tokens#create_custom_tokens_using_a_third-party_jwt_library

private_key = "----- НАЧАТЬ ЧАСТНЫЙ КЛЮЧ -----... -----END PRIVATE KEY ----- ";

Я передал закрытый ключ в методе signWith с кодированием в base64

 val encodeKey = Base64.encode(privateKey.toByteArray(), android.util.Base64.DEFAULT)

 val jwt = Jwts.builder().setIssuer("firebase-adminsdk-kywht@...")
                .setSubject("firebase-adminsdk-kywht@...")
                .setAudience("https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit")
                .setExpiration(calendar.time) //a java.util.Date
                .setIssuedAt(Date())
                .setId(UUID.randomUUID().toString())signWith(SignatureAlgorithm.RS512 ,encodeKey).compact()

Я использовал приведенный выше код, ноэто не сработало. Кто-нибудь знает, как передать закрытый ключ для создания токена?

1 Ответ

0 голосов
/ 11 июня 2019

Во-первых, вы случайно пропустили точку в своем коде или нет, так что укажите, что параметры для signWith () неверны, т. Е. Первый параметр является ключевым, а второй - алгоритмом подписи. попробуйте это:

val encodeKey = Base64.encode(privateKey.toByteArray(), android.util.Base64.DEFAULT)

val jwt = Jwts.builder().setIssuer("firebase-adminsdk-kywht@...")
            .setSubject("firebase-adminsdk-kywht@...")
            .setAudience("https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit")
            .setExpiration(calendar.time) //a java.util.Date
            .setIssuedAt(Date())
            .setId(UUID.randomUUID().toString())
            .signWith(encodeKey, SignatureAlgorithm.RS512) //changed here
            .compact()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...