11
votes

Session dans Rails_api Gem

J'utilise le gem des rails_api dans mon projet. Je souhaite ajouter une gestion de session pour l'authentification, mais il semble que la session ne fonctionne pas. Voici ma configuration dans config / initialiszer / session_store.rb : xxx

j'ai ajouté config.api_only = false dans .rb ( Ajout de la session de cookie Retour aux rails App )

et dans mon session_controller , j'ai ajouté une session pour stocker le jeton xxx

quand Application_Controller , je veux accéder à Session [: jeton] mais le résultat est nil : xxx


3 commentaires

J'ai le même problème. Suscité pour une exposition accrue.


Avez-vous résolu le problème? GITUB.com/Rails-API/Rails-api/Pull/97


Laissant également ceci pour référence: Github.com/Rails-api/Rails-api/ Problèmes / 73


3 Réponses :


0
votes

PMCAPI :: application.config.session_store: cookie_store, clé: '_pmcapi_session', expire_after: 1.hour Pouvez-vous essayer ceci dans config / initialisateur / session_store.rb


0 commentaires

2
votes

de ce que je peux voir à partir de votre config.api_only = false Ligne Ce fait que cela fait essentiellement des rails utilisez la pile complète plutôt que de le garder mince, qui est la principale raison pour laquelle vous pourriez utiliser rails -api donc je suggère d'essayer quelque chose comme xxx

dans votre contrôleur d'application.

Si cela ne fonctionne pas, je vous recommande de tirer votre attention sur Cette demande de traction sur la gestion de session dans les rails 4 pile


2 commentaires

Je prendrais cette étape supplémentaire: config.middleware.use actionDispatch :: cookies; config.middleware.use actionDispatch :: session :: cookiestore , puis bien sûr, vous devrez configurer les deux - laissez-moi savoir si vous voulez un exemple de la configuration et je le posterai dans un réponse séparée. Si vous faites cela, il sera plus facile d'intégrer Devise .


Cela me sauve-moi. mais ne fonctionne que dans application.rb, non dans Application_Controller, pas comme vous dites ... merci



0
votes

Je préfère toujours utiliser des gemmes bien supportées et documentées plutôt que d'écrire mon propre code. Les raisons de cela sont:

  1. Cela vous permet d'économiser du temps
  2. Cela vous permet d'économiser de l'argent
  3. Il est plus maintenu
  4. Les autres codeurs qui travaillent sur vos projets seront plus susceptibles de connaître ce que vous avez mis en œuvre.
  5. c'est plus sûr car (du moins dans mon cas) beaucoup plus de personnes ayant plus d'expérience que moi, y travaillent depuis plusieurs années.

    Avec tout cela hors de la manière dont je vous recommande vivement d'utiliser Devise ou l'un des autres Gems d'authentification bien établis plutôt que de lutter avec ce genre de chose par vous-même.

    J'ai trouvé cet article utile

    http://www.emilsoman.com/blog / 2013/05/18 / Construction A-Testée /


0 commentaires