[RUBY] Machen Sie den Rails-API-Modus mit der Cookie-Authentifizierung (Sitzung) kompatibel

Fassen Sie die Änderungen zusammen, wenn Sie die Authentifizierungsmethode der Anwendung (Vue.js + Rails-API-Modus) in onecareer von der Tokenauthentifizierung zur Sitzung (Cookie) ändern.

Warum ich damit angefangen habe

** Aufgrund der Anforderung, sich nahtlos von einer vorhandenen Web-App aus anzumelden **

――Wie Sie einen Benutzer, der sich auf einem in einer normalen Webanwendung implementierten Bildschirm angemeldet hat, nahtlos auf einem von SPA erstellten Bildschirm anmelden können

Diesmal haben wir zur Sitzungsauthentifizierung mit Priorität am Liefertermin gewechselt

Was wurde für die Cookie-Authentifizierung benötigt

Serverseite

config/application.rb

    # Only loads a smaller set of middleware suitable for API only apps.
    # Middleware like session, flash, cookies can be added back manually.
    # Skip views, helpers and assets when generating a new resource.
    config.api_only = false # <-Ändern Sie false in true

Wenn Sie den Sitzungsspeicher zu einem Cookie machen möchten, können Sie dies tun, indem Sie "config.api_only = true" setzen und den erforderlichen mittleren Verschleiß laden, aber das war's.

Aufgrund der oben genannten Einschränkungen habe ich api_only in false geändert. (Bitte sag mir, ob es eine gute Möglichkeit gibt, api_only = true zu verwenden und zu entwickeln: bow :)

application_controller.rb (API-Basiscontroller)

class ApplicationController < ActionController::API
  include ActionController::Cookies #<-Füge das hinzu

Diese Einstellung war auch beim Erstellen durch Erben der ActionController :: API erforderlich.

Client-Seite

Axios (Ajax-Bibliothek)

  axios.create({
    withCredentials: true,
    //...
  })

axios Es ist eine Funktion, ein anderes Domain-Cookie zu senden. Wenn dies jedoch nicht aktiviert ist, kann das Sitzungscookie nicht verwendet werden.

Recommended Posts

Machen Sie den Rails-API-Modus mit der Cookie-Authentifizierung (Sitzung) kompatibel
[Rails] Verwenden Sie Cookies im API-Modus
Nuxt.js × Erstellen Sie eine Anwendung im Rails-API-Modus