mirror of
https://github.com/serty2005/rmser.git
synced 2026-02-04 19:02:33 -06:00
2801-есть десктоп-версия. реализован ws для авторизации через тг-бота
This commit is contained in:
@@ -19,6 +19,7 @@ import (
|
||||
"rmser/config"
|
||||
"rmser/internal/domain/account"
|
||||
"rmser/internal/infrastructure/rms"
|
||||
"rmser/internal/services/auth"
|
||||
"rmser/internal/services/billing"
|
||||
draftsService "rmser/internal/services/drafts"
|
||||
"rmser/internal/services/ocr"
|
||||
@@ -47,6 +48,7 @@ type Bot struct {
|
||||
rmsFactory *rms.Factory
|
||||
cryptoManager *crypto.CryptoManager
|
||||
draftsService *draftsService.Service
|
||||
authService *auth.Service
|
||||
draftEditor *DraftEditor
|
||||
|
||||
fsm *StateManager
|
||||
@@ -69,6 +71,7 @@ func NewBot(
|
||||
rmsFactory *rms.Factory,
|
||||
cryptoManager *crypto.CryptoManager,
|
||||
draftsService *draftsService.Service,
|
||||
authService *auth.Service,
|
||||
maintenanceMode bool,
|
||||
devIDs []int64,
|
||||
) (*Bot, error) {
|
||||
@@ -105,6 +108,7 @@ func NewBot(
|
||||
rmsFactory: rmsFactory,
|
||||
cryptoManager: cryptoManager,
|
||||
draftsService: draftsService,
|
||||
authService: authService,
|
||||
fsm: NewStateManager(),
|
||||
adminIDs: admins,
|
||||
devIDs: devs,
|
||||
@@ -198,6 +202,29 @@ func (bot *Bot) registrationMiddleware(next tele.HandlerFunc) tele.HandlerFunc {
|
||||
|
||||
func (bot *Bot) handleStartCommand(c tele.Context) error {
|
||||
payload := c.Message().Payload
|
||||
|
||||
// Обработка desktop авторизации
|
||||
if payload != "" && strings.HasPrefix(payload, "auth_") {
|
||||
sessionID := strings.TrimPrefix(payload, "auth_")
|
||||
telegramID := c.Sender().ID
|
||||
|
||||
logger.Log.Info("Обработка desktop авторизации",
|
||||
zap.String("session_id", sessionID),
|
||||
zap.Int64("telegram_id", telegramID),
|
||||
)
|
||||
|
||||
if err := bot.authService.ConfirmDesktopAuth(sessionID, telegramID); err != nil {
|
||||
logger.Log.Error("Ошибка подтверждения desktop авторизации",
|
||||
zap.String("session_id", sessionID),
|
||||
zap.Int64("telegram_id", telegramID),
|
||||
zap.Error(err),
|
||||
)
|
||||
return c.Send("❌ Ошибка авторизации. Попробуйте снова.", tele.ModeHTML)
|
||||
}
|
||||
|
||||
return c.Send("✅ Авторизация успешна! Вы можете вернуться в приложение.", tele.ModeHTML)
|
||||
}
|
||||
|
||||
if payload != "" && strings.HasPrefix(payload, "invite_") {
|
||||
return bot.handleInviteLink(c, strings.TrimPrefix(payload, "invite_"))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user