Промежуточное ПО node.js - PullRequest
0 голосов
/ 28 мая 2020

введите здесь описание изображения Я создаю приложение с 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

...