vkapps

package
v1.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2020 License: MIT Imports: 6 Imported by: 0

README

VK Mini Apps

Documentation VK

VK Mini Apps — это платформа встраиваемых кроссплатформенных приложений ВКонтакте. В данном модуле собраны инструменты для Backend части приложения.

Проверка параметров запуска

При запуске сервиса на указанный в управлении приложением URL передаются дополнительные параметры, содержащие в себе данные о пользователе и об источнике запуска.

Проверка подписи в ссылке:

link := "https://example.com/?vk_user_id=494075&vk_app_id=6736218&vk_is_app_user=1&vk_are_notifications_enabled=1&vk_language=ru&vk_access_token_settings=&vk_platform=android&sign=htQFduJpLxz7ribXRZpDFUH-XEUhC9rBPTJkjUFEkRA"

v, _ := vkapps.ParamsVerify(link, "wvl68m4dR1UpLrVRli")

fmt.Println(v)

// Output:
// true
VerifyMiddleware(next http.Handler) http.Handler

VerifyMiddleware это промежуточный http обработчик, который проверяет подпись. Если подпись верна - вызывает следующий обработчик, иначе возвращает 403 ошибку.

pv := vkapps.NewParamsVerification(clientSecret)

// Перед следующие обработчиками будет проверяться подпись
http.HandleFunc("/api/user/", pv.VerifyMiddleware(UserHandler))
http.HandleFunc("/api/user/details", pv.VerifyMiddleware(UserDetailsHandler))

Пример использования в mux

pv := vkapps.NewParamsVerification(clientSecret)

r := mux.NewRouter()

// Перед следующие обработчиками будет проверяться подпись
s := r.PathPrefix("/api").Subrouter()
s.HandleFunc("/user/", UserHandler) // /api/user/
s.HandleFunc("/user/details", UserDetailsHandler) // /api/user/details
s.Use(pv.VerifyMiddleware)

// Проверки подписи не будет
r.HandleFunc("/", PublicHandler)

Documentation

Overview

Package vkapps for VK Mini Apps.

See more https://vk.com/dev/vk_apps_docs

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParamsVerify

func ParamsVerify(link, clientSecret string) (bool, error)

ParamsVerify verifies the signature in link using client secret.

Example
package main

import (
	"fmt"

	"github.com/SevereCloud/vksdk/vkapps"
)

func main() {
	link := "https://example.com/?vk_user_id=494075&vk_app_id=6736218&vk_is_app_user=1&vk_are_notifications_enabled=1&vk_language=ru&vk_access_token_settings=&vk_platform=android&sign=htQFduJpLxz7ribXRZpDFUH-XEUhC9rBPTJkjUFEkRA"

	v, _ := vkapps.ParamsVerify(link, "wvl68m4dR1UpLrVRli")

	fmt.Println(v)

}
Output:

true

Types

type ParamsVerification

type ParamsVerification struct {
	ClientSecret string
}

ParamsVerification represents verification struct.

Example
package main

import (
	"fmt"
	"net/url"

	"github.com/SevereCloud/vksdk/vkapps"
)

func main() {
	link := "https://example.com/?vk_user_id=494075&vk_app_id=6736218&vk_is_app_user=1&vk_are_notifications_enabled=1&vk_language=ru&vk_access_token_settings=&vk_platform=android&sign=htQFduJpLxz7ribXRZpDFUH-XEUhC9rBPTJkjUFEkRA"

	pv := vkapps.NewParamsVerification("wvl68m4dR1UpLrVRli") // Client secret

	u, _ := url.Parse(link)

	v, _ := pv.Verify(u)

	fmt.Println(v)

}
Output:

true

func NewParamsVerification

func NewParamsVerification(clientSecret string) *ParamsVerification

NewParamsVerification return *ParamsVerification.

func (*ParamsVerification) Sign

func (pv *ParamsVerification) Sign(p []byte) string

Sign return signature in base64.

func (*ParamsVerification) Verify

func (pv *ParamsVerification) Verify(u *url.URL) (bool, error)

Verify verifies the signature in URL.

func (*ParamsVerification) VerifyMiddleware

func (pv *ParamsVerification) VerifyMiddleware(next http.Handler) http.Handler

VerifyMiddleware func.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL