Flutter: Oauth2 - проблемы с перенаправлением URI - PullRequest
0 голосов
/ 05 октября 2019

Я хочу настроить oAuth-аутентификацию Spotify API в моем приложении Flutter. Я выбрал пакет flutter_web_auth 0.1.1. До сих пор мне удалось, что пользователь может войти в Spotify. После входа пользователь должен быть перенаправлен обратно в мое приложение. Это не работает. Spotify всегда перенаправляет пользователя на другой сайт, а не обратно в приложение. Как закрыть WebView после входа пользователя в систему и перенаправить пользователя в мое приложение?

import 'package:flutter/material.dart';
import 'package:flutter_web_auth/flutter_web_auth.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    authenticate();
  }

  void authenticate() async {
    // Present the dialog to the user
    final result = await FlutterWebAuth.authenticate(
      url:
          "https://accounts.spotify.com/de/authorize?client_id=78ca499b2577406ba7c364d1682b4a6c&response_type=code&redirect_uri=https://partyai/callback&scope=user-read-private%20user-read-email&state=34fFs29kd09",
      callbackUrlScheme: "https://partyai/callback",
    );

// Extract token from resulting url
    final token = Uri.parse(result).queryParameters['token'];
    print('token');
    print(token);
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Web Auth example'),
        ),
        body: Center(
          child: Text(
            'test',
          ),
        ),
      ),
    );
  }
}

android / app / src / main / AndroidManifest.xml

<activity android:name="com.linusu.flutter_web_auth.CallbackActivity" >
            <intent-filter android:label="flutter_web_auth">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https://partyai/callback" />
            </intent-filter>
        </activity>

введите описание изображения здесь

1 Ответ

0 голосов
/ 05 октября 2019

callbackUrlScheme должно быть partyai, redirect_uri должно быть partyai:/, а значение AndroidManifest.xml android: схема должно быть partyai.

...