https://a.storyblok.com/f/270183/54539/be867909c4/rack-middleware_1200x600.png

Apresentando o Nexmo Rack Middleware

Publicado em May 18, 2021

Tempo de leitura: 3 minutos

Por trás de todo grande framework web existe uma infraestrutura que torna tudo isso possível. Seja desenvolvendo com Ruby on Rails, Sinatra ou outros frameworks web baseados em Ruby, é muito provável que você esteja utilizando o Rack.

O Rack permite criar uma interface personalizável entre seu framework favorito e seu servidor de aplicativos. Isso permitirá que você incorpore middleware ao seu programa.

Os middlewares do Rack são aplicativos concisos que são acionados durante o ciclo de vida das solicitações e respostas de um aplicativo web.

Portanto, quer você esteja buscando um middleware para segurança, registro de eventos, disponibilização de arquivos estáticos ou outras finalidades, é possível fazer isso por meio de um processo relativamente simples.

Apresentando o Nexmo Rack

Se você está trabalhando em uma aplicação baseada no Nexmo e escrita em Ruby, agora pode aproveitar o recém-lançado nexmo_rack para incorporar as funcionalidades da API do Nexmo à sua pilha de middleware.

Nexmo Rack Middleware é nossa mais recente novidade em nosso crescente conjunto de ferramentas para Ruby, que já inclui um SDK para Ruby e uma gem de inicialização para Rails.

Lançamos o middleware Nexmo Rack na RubyConf 2019 com seu primeiro caso de uso: a verificação de mensagens SMS assinadas. Essa é uma área muito relevante para o middleware Rack. Se você estiver trabalhando com SMS em seu aplicativo, então esse primeiro recurso do nexmo_rack é algo que pode beneficiar seu desenvolvimento.

Mensagens SMS assinadas são uma forma de verificar se a mensagem realmente se originou da fonte declarada, se não foi adulterada e de proteger contra a interceptação da mensagem.

Com a Nexmo, você pode usar assinaturas tanto para mensagens enviadas quanto para mensagens recebidas. Oferecemos suporte a diversos algoritmos de assinatura, incluindo MD5, SHA-256, SHA-512 e outros. É necessário definir e utilizar um SIGNATURE SECRET para criptografar e descriptografar mensagens SMS assinadas. Sua SIGNATURE SECRET pode ser configurada no seu Painel da Nexmo.

Comece a usar o Nexmo Rack

Para usar o middleware Nexmo Rack, é preciso instalar a gem. Se você estiver desenvolvendo uma aplicação Rails, pode incluí-la no arquivo Gemfile:

gem 'nexmo_rack'

Para instalar a gem em um aplicativo Ruby independente, basta instalá-la no seu sistema executando gem install nexmo_rack na linha de comando.

Após instalar o gem, você deve fornecer a ele seu segredo de assinatura e o método de hash de assinatura desejado.

Forneça suas credenciais

O Nexmo Rack é compatível tanto com variáveis de ambiente quanto com as credenciais do Rails, e você pode usar a opção de sua preferência ao fornecer suas credenciais de API à gem. Independentemente do método escolhido, é sempre recomendável não incluir suas credenciais no controle de versão.

Se você estiver usando variáveis de ambiente, abra o arquivo .env arquivo e adicione duas novas entradas para o seu segredo de assinatura do Nexmo e o algoritmo de assinatura desejado:

NEXMO_SIGNATURE_SECRET = 'your_secret_key'
NEXMO_SIGNATURE_METHOD = 'md5hash'

Se você estiver usando o sistema de credenciais do Rails, primeiro é preciso abrir suas credenciais do Rails descriptografadas executando EDITOR="code --wait" rails credentials:edit na linha de comando. Você pode substituir o valor da EDITOR= pelo nome do seu editor de código preferido.

Depois que o arquivo de credenciais estiver aberto, você poderá adicionar o segredo de assinatura e o método de assinatura utilizando a seguinte estrutura de namespaces:

nexmo:
  signature_secret: your_secret_key
  signature_method: md5hash

Como usar o middleware

Assim que o Nexmo Rack estiver devidamente configurado em seu aplicativo, você poderá começar a usá-lo. Uma das melhores características do middleware Rack é a facilidade de uso.

A VerifySignature funcionalidade verificará se cada solicitação recebida contém uma sig chave e tentará verificar a assinatura das mensagens que possuírem essa sig chave. Se a mensagem for verificada, ela será encaminhada para o próximo item da sua pilha; caso contrário, será retornado um 403 Forbidden status. Você pode habilitar essa funcionalidade tanto em um aplicativo Ruby independente quanto em um aplicativo Rails.

Integrado a uma aplicação Rails

Adicione o middleware Nexmo Rack ao seu config/application.rb arquivo para inicializá-lo em seu aplicativo:

config.middleware.use Nexmo::Rack::VerifySignature

Como um aplicativo independente

Adicione o middleware Nexmo Rack ao seu config.ru arquivo de configuração do Rack:

use Nexmo::Rack::VerifySignature

É só isso que você precisa fazer para começar a aproveitar as vantagens das validações por SMS assinadas e sem complicações usando o Nexmo Rack!

Você tem alguma dúvida ou comentário? Adoraríamos saber o que você está desenvolvendo com o Nexmo Rack ou com qualquer uma de nossas ferramentas em Ruby. Você pode se juntar à equipe de Relações com Desenvolvedores da Nexmo no Slack, enviar-nos um e-mail ou se conectar conosco no Twitter.

Leitura complementar

Quer saber mais?

Compartilhar:

https://a.storyblok.com/f/270183/384x384/e5480d2945/ben-greenberg.png
Ben GreenbergEx-funcionários da Vonage

Ben é um desenvolvedor que mudou de carreira, tendo atuado anteriormente por uma década nas áreas de educação de adultos, organização comunitária e gestão de organizações sem fins lucrativos. Ele trabalhou como representante de desenvolvedores na Vonage. Escreve regularmente sobre a interseção entre desenvolvimento comunitário e tecnologia. Natural do sul da Califórnia e morador de longa data da cidade de Nova York, Ben reside atualmente perto de Tel Aviv, em Israel.