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

Hauptmethoden der Authentifizierung in der API

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, abe...

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?

Fakultative Komplexität - ist eine Situation, in der die Anzahl der Varianten oder Kombinationen ...

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

Was ist NP-Komplexität?

NP-Schwierigkeit - ist eine Klasse von Aufgaben, für die es sehr schwierig ist, eine Lösung zu fi...

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

Was ist ivar in Ruby / Rails?

ivar - ist eine Abkürzung für instance variable (Instanzvariable). In Ruby wird sie mit @ vor dem...

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

Was unterscheidet OAuth 1 von OAuth 2

OAuth 1 OAuth 1 wurde Anfang der 2000er Jahre als Methode zur sicheren Zugriffsgewährung für Drit...

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?

Wenn wir mit Datenbanken arbeiten, müssen wir normalerweise SQL-Abfragen schreiben - Abfragen, Ei...