Watch
1
0
Fork
You've already forked mautrix-discord
0
mirror of https://github.com/mautrix/discord.git synced 2026-11-11 00:29:16 -05:00
mautrix-discord/pkg/remoteauth
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Gerardo Rodriguez d2b30d75dd remoteauth: report QR logins cancelled on the phone instead of using an empty token
A cancel from the Discord app closed the client without an error, so the
login went on to validate an empty token and told the user Discord had
rejected their token. Return a cancel error, and refuse to finish a QR
login that ended without a token.
2026-11-09 14:25:45 +00:00
..
client.go login,remoteauth: fix unsafe login cancellation 2026-09-02 17:05:40 +03:00
clientpackets.go all: init v2 and delete old bridge 2024-08-15 16:44:23 +03:00
README.md all: init v2 and delete old bridge 2024-08-15 16:44:23 +03:00
serverpackets.go remoteauth: report QR logins cancelled on the phone instead of using an empty token 2026-11-09 14:25:45 +00:00
user.go all: init v2 and delete old bridge 2024-08-15 16:44:23 +03:00

Discord Remote Authentication

This library implements the desktop side of Discord's remote authentication protocol.

It is completely based off of the Unofficial Discord API Documentation.

Example

package main

import (
	"context"
	"fmt"

	"github.com/skip2/go-qrcode"
)

func main() {
	client, err := New()
	if err != nil {
		fmt.Printf("error: %v\n", err)

		return
	}

	ctx := context.Background()

	qrChan := make(chan *qrcode.QRCode)
	go func() {
		qrCode := <-qrChan
		fmt.Println(qrCode.ToSmallString(true))
	}()

	doneChan := make(chan struct{})

	if err := client.Dial(ctx, qrChan, doneChan); err != nil {
		close(qrChan)
		close(doneChan)

		fmt.Printf("dial error: %v\n", err)

		return
	}

	<-doneChan

	user, err := client.Result()
	fmt.Printf("user: %q\n", user)
	fmt.Printf("err: %v\n", err)
}