Vanilla JS
Минимальная интеграция Tapok без фреймворка.
Vanilla JS
Hosted
<script src="https://tapok.orria.space/tapok.js"></script>
<button id="login">Войти</button>
<script>
document.querySelector('#login').onclick = async () => {
try {
const result = await window.Tapok.login()
await sendTokenToBackend(result.token)
} catch (error) {
console.error(error.code)
}
}
</script>
Popup открывайте непосредственно из click handler. Backend проверяет token через verifyHostedToken(token, { origin }). Hosted возвращает pairwise UID и nullable 18+, но не профиль, контакты или исходный ID провайдера.
Connect
import { createTapokConnect } from '@orria/tapok/browser'
const tapok = createTapokConnect({
clientId: 'tapok_…',
redirectUri: location.origin + '/auth/callback',
scopes: ['session', 'profile:display_name'],
})
document.querySelector('#login').onclick = () => tapok.startSignIn()
if (location.pathname === '/auth/callback') {
const callback = tapok.finishSignIn()
if (callback) sendToOwnBackend(callback)
}
Backend выполняет Connect exchange через exchangeConnectCode() с API key. Никогда не добавляйте API key в script.
Подробнее: Tapok Hosted и Hosted/Connect.