введите здесь описание изображения Я создаю приложение с firebase.
Android - клиент, а node.js - сервер.
так Я отправляю firebaseIdtoken на node.js
Но я сделал промежуточное ПО для verifyIdtoken.
Я хочу знать, как я могу отправить данные на node.js
GET ? ПОЧТА? СТАВИТЬ? Я отправил данные на node.js с помощью okhttp. Но это не удалось. Node.js не может получить токен .... достигнуто undefined. Подскажите пожалуйста, как это сделать. Это мой код промежуточного программного обеспечения node.js.
const { authCheck } = require('../user_fish/firebase');
const user_infoRepository = require('../user_info/repository')
var admin = require("firebase-admin");
function firebaseAuth(req, res, next) {
let token = req.body.token;
// console.log(req.b)
console.log(token)
admin.auth().verifyIdToken(String(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
firebaseAuthListener=new FirebaseAuth.AuthStateListener() {
@Override
//인증살태가 변경될 때 발생
//사용자가 로그인한 경우 , 사용자가 로그아웃한 경우 사용자가 변경될때 발생
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,"start:"+"start ok http");
OkHttpClient client = new OkHttpClient();
RequestBody formBody = new FormBody.Builder()
.add("idToken", idToken)
.build();
Log.d(TAG,"Token: " +idToken);
Request request = new Request.Builder()
.url("http://10.0.2.2:3000")
.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{
}
}
});
Я хочу использовать промежуточное программное обеспечение таким образом.
.get('/fish',firebaseAuth,service.getFish)
.post('/login',firebaseAuth,service.loginprocess)
.get('/logout',firebaseAuth, service.logout)
.get('/google',firebaseAuth,service.googleLogin)
![enter image description here](https://i.stack.imgur.com/k1bgm.png)