← StartseiteProgrammierung (Програмування)

Hauptmethoden der Authentifizierung in der API

Die wichtigsten Authentifizierungsmethoden in der API auf Ruby on Rails: Basic Auth, Token, JWT und OAuth 2 für sicheren Zugriff auf Ressourcen.

InhaltsverzeichnisKlicke auf den Link, um zur gewünschten Stelle zu navigieren
Dieser Inhalt wurde automatisch aus dem Ukrainischen übersetzt.
Wenn wir eine API in Ruby on Rails erstellen, ist es wichtig zu kontrollieren, wer Zugriff hat auf die Ressourcen. Hier sind die grundlegenden Ansätze zur Authentifizierung:

Basis-Authentifizierung

Die einfachste, aber wenig sichere Methode. Bei der Basis-Authentifizierung überträgt der Authorization-Header Benutzernamen und Passwort, die in Base64 kodiert sind.
Format des Headers:
Authorization: Basic <base64_string>
<base64_string> = Base64-kodierter String username:password
Zum Beispiel, wenn Sie haben:
  • username = apiuser
  • password = secret123
Zuerst bilden wir den String:
apiuser:secret123
Dann kodieren wir ihn in Base64:
require 'base64'

credentials = "apiuser:secret123"
encoded = Base64.strict_encode64(credentials)
puts encoded
# => YXBpdXNlcjpzZWNyZXQxMjM=
Also wird der Header so aussehen:
Authorization: Basic YXBpdXNlcjpzZWNyZXQxMjM=
Wenn Rails Authorization: Basic ... sieht, dekodiert die Methode authenticate_or_request_with_http_basic Base64, trennt username:password und überprüft sie auf dem Server.

Token-Authentifizierung

Der Benutzer erhält ein einzigartiges Token, das er zu jeder Anfrage hinzufügt.
Eine sicherere Option für mobile oder Frontend-Anwendungen.
class Api::V1::BaseController < ApplicationController
  before_action :authenticate_user!

  private

  def authenticate_user!
    token = request.headers['Authorization']&.split(' ')&.last
    @current_user = User.find_by(api_token: token)
    render json: { error: 'Unauthorized' }, status: :unauthorized unless @current_user
  end
end
Header der Anfrage:
Authorization: Token abc123

JWT (JSON Web Token)

Eine beliebte Methode für stateless APIs. Der Server speichert keine Sitzungen, der Client sendet ein signiertes Token.
Beispiel mit dem Gem jwt:
# Token erstellen
payload = { user_id: user.id, exp: 24.hours.from_now.to_i }
token = JWT.encode(payload, Rails.application.secret_key_base)

# Token überprüfen
decoded = JWT.decode(token, Rails.application.secret_key_base).first
user_id = decoded["user_id"]
Header:
Authorization: Bearer <jwt_token>

OAuth 2.0

Ein Standard für die Autorisierung und den Zugriff auf Ressourcen über Drittanbieter-Services oder APIs.
Um einen eigenen OAuth 2-Server in Rails zu erstellen, verwendet man Doorkeeper:
# Gemfile
gem 'doorkeeper'
Nach der Einrichtung können Zugriffstokens an externe Clients ausgegeben werden:
Authorization: Bearer <access_token>
Wenn es erforderlich ist, Benutzern das Einloggen über Drittanbieter-Services (Google, Facebook, GitHub) zu ermöglichen, verwendet man OmniAuth in Verbindung mit Devise zur Authentifizierung.
Einfach ausgedrückt: Doorkeeper — für den Zugriff auf die API, OmniAuth — für das Einloggen von Benutzern über andere Dienste.

🔥 Weitere Beiträge

Alle Beiträge
Was ist faktoriale Komplexität?
Programmierung (Програмування)16. Sep '25, 19:03 Uhr

Was ist faktoriale Komplexität?

Faktorielle Komplexität ist das schnelle Wachstum der Anzahl der Varianten, wenn für n Elemente m...

Was ist NP-Komplexität?
Programmierung (Програмування)16. Sep '25, 19:31 Uhr

Was ist NP-Komplexität?

NP-Schwierigkeit ist eine Klasse von Problemen, bei denen es extrem schwierig ist, eine Lösung zu...

Was ist ivar in Ruby / Rails?
Programmierung (Програмування)19. Okt '25, 20:12 Uhr

Was ist ivar in Ruby / Rails?

ivar in Ruby ist eine Instanzvariable, die mit @ gekennzeichnet ist. In Rails überträgt sie Daten...

Was unterscheidet OAuth 1 von OAuth 2
Programmierung (Програмування)19. Okt '25, 20:34 Uhr

Was unterscheidet OAuth 1 von OAuth 2

Der Beitrag erzählt von OAuth 1 und OAuth 2: ihrer Geschichte, ihrem Zweck, den Unterschieden, de...

Was ist ORM und wozu wird es benötigt?
Programmierung (Програмування)26. Okt '25, 14:00 Uhr

Was ist ORM und wozu wird es benötigt?

ORM ist eine Technologie, die es ermöglicht, mit Datenbanken über Code-Objekte zu arbeiten, die E...