Авторизация через TonKeeper
Краткий обзор, как сделать авторизацию через TonKeeper.
https://github.com/tonkeeper/ton-connect
Генерация ссылки
Ссылка, которая заложена в QR-коде, либо дана напрямую, содержит в себе ссылку на API, к которому должен обратится tonkeeper при открытии.
https://app.tonkeeper.com/ton-login/{url_to_auth_request}
https://app.tonkeeper.com/ton-login/getgems.io/tk?id=akW4kIskoXf8_43242
Содержимое API запроса
Пример содержимого getgems.io/tk?id=akW4kIskoXf8_43242
Ссылка должна поддерживать https.
{ "protocol": "ton-auth", "v1": { "session": "uD/4pn32ljHzX031232123131W/jAG4Ikxjw=", "session_payload": "UjjaXDO4PSW532131321313HLtyGSs1IVAFj4gSfRDhcdRWtFvF7JmbIBCdA4dBDXS3i9CPMewMpvDG7JpBF+IVYDJ0CTtyDi9m14EWdv+N5+yx2aer4uwroGPPPNnX5zpGGmLHzkOdzxHTYuQNcVpiN72DdJv8QPj5rVKmdVaPd5lAviTK/L9Y", "image_url": "https://ddejfvww7sqtk.cloudfront.net/images/Getgems.png", "items": [ { "type": "ton-ownership", "required": true } ], "callback_url": "https://api.getgems.io/tk/callback?authenticationId=akW43232koXf8_A-LpXkcOQ" } }
После того как TonKeeper открыл ссылку, он сразу же заходит на это API.
Callback
После того как пользователь нажал "Подтвердить", с IP пользователя отправляется запрос на callback_url, со всеми данными о пользователе.
Данные необходимо декодировать
tonconnect.decodeResponse(req.query.tonlogin);
В декодированных данных, будет client_id, уникальный id пользователя и подтверждение владения каким-то кошельком.