idTokne имеет значение null, когда я использую вход в Google из Flutter - PullRequest
0 голосов
/ 09 апреля 2020

Здравствуйте, я пытаюсь использовать google_sign_in из здесь .

Мой код выглядит следующим образом

    GoogleSignIn _googleSignIn = GoogleSignIn(                                                                                                                                                                                                                                               
  scopes: [                                                                                                                                                                                                                                                                              
    'https://www.googleapis.com/auth/youtube.readonly',                                                                                                                                                                                                                                  
    'profile',                                                                                                                                                                                                                                                                           
  ],                                                                                                                                                                                                                                                                                     
);

@override                                                                                                                                                                                                                                                                              
  void initState() {                                                                                                                                                                                                                                                                     
    super.initState();                                                                                                                                                                                                                                                                   
    _googleSignIn.onCurrentUserChanged.listen((GoogleSignInAccount account) {                                                                                                                                                                                                            
      setState(() {                                                                                                                                                                                                                                                                      
        _currentUser = account;                                                                                                                                                                                                                                                          
      });                                                                                                                                                                                                                                                                                
    });                                                                                                                                                                                                                                                                                  
    _googleSignIn.signInSilently();                                                                                                                                                                                                                                                      
  }                                                                                                                                                                                                                                                                                      

  Future<void> _handleSignIn() async {                                                                                                                                                                                                                                                   
    try {                                                                                                                                                                                                                                                                                
      _currentUser = await _googleSignIn.signIn();                                                                                                                                                                                                                                       
      GoogleSignInAuthentication _currentUserAuth =                                                                                                                                                                                                                                      
          await _currentUser.authentication;                                                                                                                                                                                                                                             
      print("user logged in: ${_currentUserAuth.idToken}");
    } catch (error) {
      print(error);
    }
  }

Я создал клиент OAuth для веб-сайтов и применил его в конструкторе GoogleSinIn как это

GoogleSignIn _googleSignIn = GoogleSignIn(  
  clientId: "client id for Oauth client web",                                                                                                                                                                                                                                      
  scopes: [                                                                                                                                                                                                                                                                              
    'https://www.googleapis.com/auth/youtube.readonly',                                                                                                                                                                                                                                  
    'profile',                                                                                                                                                                                                                                                                           
  ],                                                                                                                                                                                                                                                                                     
);

Но это не работает. Я думаю, что это не событие чтения значения идентификатора клиента из конструктора.

_currentUserAuth имеет accessToken, но не имеет idToken.

Мне нужно это для бэкэнда для получения информации о пользователе и проверки пользователя вручную ( Я не использую firebase).

Любые идеи ??

...