Especificação das chaves API do usuário

Você acha que faria sentido pular os scripts detect-browser quando alguém usa o endpoint

https://sitename.com/user-api-key/new

? É mais provável que eles estejam sendo redirecionados para lá a partir de um aplicativo, portanto, verificar se o motor JavaScript deles está à altura faz pouco sentido e apenas bloqueia usuários que desejam gerar uma chave de API para uso no aplicativo.

Mas você ainda precisa fazer login para que funcione

Sim, esse é o problema, quando user-api-key/new redireciona você para uma página de login, ele começa a verificar seu navegador e, em vez de permitir o login para gerar a chave de API, reclama que seu navegador está muito antigo. Talvez pular essas verificações se o usuário estiver aqui apenas para gerar uma chave de API?

Sim, esse é o problema, é uma forma de fazer login sem JavaScript, o que é incrivelmente complexo, dada a enorme quantidade de opções de autenticação que suportamos e as medidas de prevenção contra spam.

1 curtida

Não precisa ser sem javascript, apenas os formulários de login realmente não precisam de todos os sinos e assobios que são usados em outros lugares no site? Pelo menos para a passagem para o auth/oauth2_basic não parece ser necessário, pois 99% é feito com cabeçalhos e redirecionamentos. Tenho um aplicativo no SailfishOS que funciona perfeitamente com os .json’s e passando a api-key, o que é ótimo, pois o navegador lá é baseado no firefox esr78 e é bloqueado na maioria das instâncias do discourse, mas a única maneira de obter uma api-key parece ser inserir manualmente um URL de mais de 200 caracteres no desktop, depois colar o código resultante de volta no telefone para decodificá-lo, absolutamente ridículo.

5 posts foram divididos em um novo tópico: User API keys should use OAEP padding

Olá pessoal. Eu estava usando chaves de API de usuário para login usando um cliente de terceiros. Costumava funcionar bem. Mas agora estou recebendo uma mensagem de erro em alguns sites

A mensagem é

Oops
O software que alimenta este fórum de discussão encontrou um problema inesperado. Pedimos desculpas pelo inconveniente.

Informações detalhadas sobre o erro foram registradas e uma notificação automática gerada. Daremos uma olhada nisso.

Nenhuma ação adicional é necessária. No entanto, se a condição de erro persistir, você pode fornecer detalhes adicionais, incluindo etapas para reproduzir o erro, postando um tópico de discussão na categoria de feedback do site.

Houve alguma alteração nesse recurso nas últimas versões?

Você quer dizer “fazer login”? Acho que o Discourse Connect é provavelmente uma maneira melhor de fazer isso, embora eu não saiba o que você está realmente fazendo.

Você precisará verificar os logs para obter mais informações sobre qual é o erro.

Estou executando uma interface de usuário personalizada, então preciso executar ações em nome do usuário. Para isso, estou usando chaves de API de usuário.

Para isso, estou usando o seguinte URL

https://discussion.fedoraproject.org/user-api-key/new?auth_redirect=discourse%3A%2F%2Fauth_redirect&application_name=DisCorkie&client_id=019695ed-8b7e-71b1-b55e-7efe8be1e9ae&scopes=read%2Cwrite%2Cnotifications%2Cpush%2Csession_info&push_url=https%3A%2F%2Fherxbktlunuawewahana.supabase.co%2Ffunctions%2Fv1%2Fdiscourse-webhook&public_key=-----BEGIN+PUBLIC+KEY-----%0AMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD%2BNgNuAMv2ZSSR95V1B%0Afla9n3HbCPxAFB5%2B%2BitC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe%2BfgtS5F3Q%0AGvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3%0A4eExqEYoGK7tBxr3%2FnVYO%2FogOaibzhoZRiSh69gq6ptXWN9Pka%2Fb3%2Fp2hWF5MSwG%0AK39LiZKOzaga%2BsA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX%0AKakxrmZzWwibN%2Bzboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k%2FaSWFAe8FO0doQ%0AxVoh9qVhlvPq3DdLhcjC0djVNti3X%2BYC2bwUDSp%2BFhrLh%2BsYribCAp6P8TyZ5TZy%0Aw0WnDCatK%2FzPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx%0Ag2mTR15Qe%2FRh6yY4fB610mcut%2BBU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK%2BVVC%0AfMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg%0A4teQs4VecqIe%2Bv6p7BurFgwlKZyWN0n89u8%2BXihwwwOcVp1UHblqbl%2FKYi5%2BgK6O%0AyahsLRGMGllNIsqarYCZ9nkCAwEAAQ%3D%3D%0A-----END+PUBLIC+KEY-----%0A&nonce=-1646128802

Onde
PARÂMETROS
auth_redirect: discourse://auth_redirect
application_name: DisCorkie
client_id: 019695ed-8b7e-71b1-b55e-7efe8be1e9ae
scopes: read,write,notifications,push,session_info
push_url: https://herxbktlunuawewahana.supabase.co/functions/v1/discourse-webhook
public_key:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD+NgNuAMv2ZSSR95V1B
fla9n3HbCPxAFB5++itC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe+fgtS5F3Q
GvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3
4eExqEYoGK7tBxr3/nVYO/ogOaibzhoZRiSh69gq6ptXWN9Pka/b3/p2hWF5MSwG
K39LiZKOzaga+sA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX
KakxrmZzWwibN+zboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k/aSWFAe8FO0doQ
xVoh9qVhlvPq3DdLhcjC0djVNti3X+YC2bwUDSp+FhrLh+sYribCAp6P8TyZ5TZy
w0WnDCatK/zPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx
g2mTR15Qe/Rh6yY4fB610mcut+BU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK+VVC
fMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg
4teQs4VecqIe+v6p7BurFgwlKZyWN0n89u8+XihwwwOcVp1UHblqbl/KYi5+gK6O
yahsLRGMGllNIsqarYCZ9nkCAwEAAQ==
-----END PUBLIC KEY-----
nonce:-1646128802

Ele redireciona para /login, o navegador chama /session/csrf com sucesso, sem problemas até agora.

No entanto, quando o navegador chama /auth/oauth2_basic, recebo um erro 500.

A resposta é esta mensagem de erro e nenhuma informação adicional.

O Discourse hub faz um fluxo de autenticação semelhante, mas funciona. Há algo que estou perdendo?

Algo em /logs?

2 curtidas

Após alguma investigação, descobri que esse problema estava ocorrendo porque eu estava usando chaves de 4096 bits. Mudei para 2048 e começou a funcionar corretamente.

Esse tamanho de chave é um requisito? Está documentado em algum lugar?

2 curtidas