Orientação gerada a partir de informações públicas. Apenas para referência.
Um pacote Flutter que permite a integração de login no VK.com para aplicativos móveis. Simplifica o processo de autenticação ao lidar com o fluxo OAuth do VK, permitindo que os usuários entrem com suas contas do VK. O pacote recupera informações essenciais sobre o perfil do usuário, como nome, e-mail e foto de perfil, facilitando a personalização da experiência do usuário. Projetado para Android e iOS, integra-se suavemente em projetos existentes do Flutter com configuração mínima. Ideal para aplicativos que buscam melhorar o onboarding do usuário por meio de login social.
Casos de uso
Integração de login social
Onboarding de usuário com VK
Recuperação de dados do perfil
Autenticação de aplicativo móvel
Fluxos de login simplificados
Login social multiplataforma
Principais recursos
Integração do VK OAuth2
Acesso aos dados do perfil do usuário
Suporte a Android e iOS
Configuração fácil com pub add
Código mínimo de boilerplate
Manuseio seguro de token
Indicado para
Aplicativos que exigem login do VK
Projetos usando autenticação social
Desenvolvedores direcionados para públicos falantes de russo
Aplicativos móveis com perfis de usuário
Startups que querem implementação rápida de autenticação
Aplicativos Flutter que precisam de login multiplataforma
Considerações
Requer registro do aplicativo VK
É necessário configurar corretamente o URI de redirecionamento
Depende da conexão com a internet
Pode exigir permissões adicionais
Limitado a titulares de conta VK
Conformidade com os termos de serviço do VK
README original
Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.
flutter_login_vk
Flutter Plugin to login via VK.com.
Easily add VK login feature in your application. User profile information included.
Android 5.0 and newer (SDK 21). Minimum compileSdkVersion31.
⚠️ If your project was create with Flutter pre 1.12 you should upgrade it to the Android embedding v2.
See https://flutter.dev/go/android-project-migration
Create an app on VK.com https://vk.com/editapp?act=create
Enter "Title".
Select Standalone app as "Platform".
Click "Connect app".
An application will be created. Now select tab "Settings" and copy "App ID"
(referenced as [APP_ID] in this readme).
App settings for Android
Set Package name for Android - your package name for Android application (attribute package in AndroidManifest.xml).
Set Main activity for Android - your main activity class (with package). By default it would be com.yourcompany.yourapp.MainActivity.
To fill up Signing certificate fingerprint for Android you should create SHA1 fingerprint
as described in the documentation
(without SHA1: prefix). Pay attention: you should remove all colons from the fingerprint string.
Add fingerprints for debug and release certificates. Note: if your application uses Google Play App Signing than you should get certificate SHA-1 fingerprint from Google Play Console.
⚠️ Important! You should add fingerprints for every build variants. E.g. if you have CI/CD which build APK for testing
with it's own certificate (it may be auto generated debug certificate or some another) than you should add it's fingerprint too.
Click "Save".
App settings for iOS
Add your Bundle Identifier - set App Bundle ID for iOS (you can find it in Xcode: Runner - Target Runner - General, section Identity, field Bundle Identifier).
Also set App ID for iOS, it's you SKU (you can find it in App Store Connect: My Apps - {Your application} - App Store - App Information, section "General Information"). Mostly often is't the same as bundle ID.
⚠️ NOTE. Check if you already have CFBundleURLTypes or LSApplicationQueriesSchemes keys in your Info.plist. If you have, you should merge their values, instead of adding a duplicate key.
If you want to use scope=nohttps, which we strongly do not recommend, you should also add NSAppTransportSecurity,
see the documentation.
Upload "Square banner" and "A square banner for catalog" - user can see it.
Setup other settings if you need it.
Than go to "Setting" tab and turn on application:
change "App status" from Application off to Application on and visible to all.
Click "Save".
Usage in application
First, you should create an instance of VKLogin.
Than, before any method call or checking accessToken you should initialize VK SDK:
final vk = VKLogin();
await vk.initSdk();
Now you can use the plugin.
Features:
log in via VK.com;
get access token;
get user profile;
get user email;
check if logged in;
log out.
Sample code:
import'package:flutter_login_vk/flutter_login_vk.dart';
// Create an instance of VKLoginfinal vk = VKLogin();
// Initializeawait vk.initSdk();
// Log infinal res = await vk.logIn(scope: [
VKScope.email,
VKScope.friends,
]);
// Check resultif (res.isValue) {
// There is no error, but we don't know yet// if user logged in or not.// You should check isCanceledfinalVKLoginResult result = res.asValue!.value;
if (result.isCanceled) {
// User cancel log in
} else {
// Logged in// Send access token to server for validation and authfinalVKAccessToken? accessToken = result.accessToken;
if (accessToken != null) {
print('Access token: ${accessToken.token}');
// Get profile datafinal profileRes = await vk.getUserProfile();
final profile = profileRes.asValue?.value;
if (profile != null) {
print('Hello, ${profile.firstName}! You ID: ${profile.userId}');
}
// Get email (since we request email permissions)final email = await vk.getUserEmail();
print('And your email is $email');
} else {
print('Something goes wrong');
}
}
} else {
// Log in failedfinal errorRes = res.asError!;
print('Error while log in: ${errorRes.error}');
}
Initialization notes
When you call initSdk(), plugin try to restore previous session.
If token has been expired - it will be refreshed.
Also, during restoring, log in screen may be shown to user
(only if user was logged in).
In additional, you can pass to initSdk() required scope,
and if current user session doesn't provide it - user will be
logged out.
Also you can specify API version to use, but you shouldn't.