Я отправил idtoken с android на сервер node.js Я хочу проверить Idtoken в node.js
Но произошла эта ошибка.
Первый аргумент verifyIdToken () должен быть строка токена Firebase ID.
Я не знаю, почему произошла ошибка
Я отправил токен на свой локальный сервер и сервер веб-хостинга. Но оба произошли ошибки.
var admin = require("firebase-admin");
function authCheck(token) {
return admin.auth().verifyIdToken(token)
};
exports.authCheck = authCheck;
// exports.userCheck=userCheck;
Это мое промежуточное ПО для проверки idtoken
const { authCheck } = require('../user_fish/firebase');
const user_infoRepository = require('../user_info/repository')
function firebaseAuth(req, res, next) {
let token = req.body.token;
authCheck(token)
.then(decodedToken => {
let uid=decodedToken.uid;
console.log(uid);
// return user_infoRepository.uidFindOrCreate(decodedToken.uid)
})
.then(user => {
req.user = user[0]
next();
})
.catch(e => {
res.json(e)
})
}
exports.firebaseAuth = firebaseAuth;
И это мой код android для отправки токена на node.js
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user=firebaseAuth.getCurrentUser();
String uid=user.getUid();
Log.d(TAG,"user uid:"+user.getUid());
if(user!=null){
//Token 알아내기
user.getIdToken(true)
.addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
@Override
public void onComplete(@NonNull Task<GetTokenResult> task) {
if(task.isSuccessful()){
String idToken=task.getResult().getToken();
try {
// Send token to your backend via HTTPS
Log.d(TAG,"Token: " +idToken);
Log.d(TAG,"start:"+"start ok http");
OkHttpClient client = new OkHttpClient();
RequestBody formBody = new FormBody.Builder()
.add("idToken", idToken)
.build();
Request request = new Request.Builder()
.url("http://10.0.2.2:3000/user_fish/fish")
.post(formBody)
.build();
//바동기 처리
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(@NotNull Call call, @NotNull IOException e)
{
Log.d(TAG,"fail:"+e.toString());
System.out.println("error + Connection Server Error
is"+e.toString());
}
@Override
public void onResponse(@NotNull Call call, @NotNull Response
response) throws IOException {
Log.d(TAG,"success:"+response.body().toString());
System.out.println("Response Body is "+ response.body().string());
}
});
}catch (Exception e){
}
Toast.makeText(MainActivity.this, idToken,
Toast.LENGTH_SHORT).show();
}else{
}
}
});
Intent intent=new Intent(MainActivity.this, BasicActivity.class);
// intent.putExtra("uid",uid);
Log.d(TAG,"basic가는 uid:"+uid);
// Toast.makeText(MainActivity.this,uid, Toast.LENGTH_SHORT).show();
startActivity(intent);
}else{
}
}
};
Это информация о моем токене
{
"iss": "https://securetoken.google.com/graduation-f5a8d",
"aud": "graduation-f5a8d",
"auth_time": 1590587163,
"user_id": "f4ZelA5RrPQDvc9oqp5ev1WSXwW2",
"sub": "f4ZelA5RrPQDvc9oqp5ev1WSXwW2",
"iat": 1590587164,
"exp": 1590590764,
"email": "hyogil2478@daum.net",
"email_verified": false,
"firebase": {
"identities": {
"email": [
"hyogil2478@daum.net"
]
},
"sign_in_provider": "password"
}
}
Подскажите, пожалуйста, как решить эту проблему ...