Rails aynı etki bir oturum olduğunda PHP bir oturum oluşturmak nasıl?

2 Cevap php

Xyz.domain.com ve başka bir alt etki alanı üzerinde bir PHP uygulaması - - Ben bir alt bir Rails uygulaması var abc.domain.com

Bir kullanıcı Rails app içine kaydedilir, ben PHP uygulaması ancak Raylar app aynı veritabanında bu kullanıcı hakkında bazı olayları günlüğe böylece onlara bir oturum vermek istiyorum. Ben aslında sadece kimlik doğrulaması gerektiren bir API maruz olacaktır.

Bu konuda gitmek için en iyi yolu nedir? Ben bir veritabanında oturum saklamak değilim

UPDATE I should mention that the goal is to allow authenticated access from the PHP site to the database that has been only used by the Rails app thus far. If a user is logged into the Rails app, I want to be able to track any events that occur on the PHP site and associate them with the user.

2 Cevap

Ben Raylar hakkında bir şey bilmeden, cevap verecektir.

Sen customize the cookie name php.ini de olabilir. Oturum adı ve doğru çerez etki alanı arasında iki uygulama tarafından paylaşılan bir çerez oluşturabilirsiniz.

PHP açısından bir "oturum" sadece kimin değeri noktaları oturum deposuna kaydedilen bazı veri kümesi için bir çerez gelir. (Varsayılan config kullanılarak) PHP bir çerez görürse Örneğin, PHPSESSID=2b00042f7481c7b056c4b410d28f33cf, bu /tmp/sess_2b00042f7481c7b056c4b410d28f33cf gibi bir oturum dosyası için bakacağız. Dosyası sadece çıktısını içeren serialize($_SESSION).

Yani, paylaşım oturumu bu çerez değeri paylaşan, ama özünde başka bir şey. PHP log kayıtları eklemek için ise, diğer değerleri paylaşmaya nasıl karar vermek zorunda olacak. Bazı seçenekler:

  1. PHP oturum boşsa, oturum açan kullanıcı adı ve diğer oturum ayrıntıları sağlar Rails app bir URL sorgu. URL localhost sadece erişilebilir olduğundan emin olun.
  2. PHP bir arama yapabilirsiniz böylece veritabanındaki kullanıcı adları / kimlikleri seans kimlikleri eşit.

i oturumu mümkün olmadığını düşünüyorum. Onlar alt alan arasındaki aynı veritabanını paylaşabilir eğer kimlik saklamak için veritabanı kullanabilirsiniz.