2008/5/23 Adinda Praditya <[EMAIL PROTECTED]>:

> user = User.authenticate("dida", "123")
> => #<User:0xb71df83c
> @attributes={"hashed_password"=>"40bd001563085fc35165329ea1ff5c5ecbdbbeef",
> "id"=>"1", "login"=>"dida", "email"=>"[EMAIL PROTECTED]"}>

Nah dari hasil lacak Anda temukan dah gak masalah, sekarang coba Anda
lacak yang di controller, fyi ini cara mau cepet, langsung nyoba di
script/console, cara yang afdol adalah pakai spec/test.

Ini kalo Anda sudah pasang route nya dgn bener (cara ceknya biar tau
uda bener apa nggak kalo jaman sekarang bisa tinggal ketik rake routes
aja nongol semua sedap). Tinggal Anda tes di script/console

ENV['REQUEST_URI'] = '/login'
ENV['REQUEST_METHOD'] = 'get'

trus abis gitu siap uda kita "kerjain" tu si rails dari script console dgn cara

Dispatcher.dispatch

abis gitu perhatikan apa yg didapat dari hasil return/setelah enter.
Begitu pula cara yang utk post. Kalau saya pribadi cenderung refleks
pakai rspec ya, kalo nggak kok terasa ada yang hilang/kelewatan, di
rspec tinggal pasang di defaults = { :user => @params } sama post
/sessions, defaults.merge!(params) di load nya dari sana Anda bisa
lacak di tail -f log/test.log apakah bisa terkirim apa nggak itu Hash
dan sukses, bila iya, Anda bisa lagi hantam lacak aja langsung dari
Controller gabungin pake fixture, kalo dasar abis ini juga masih where
sekian id is null jg tu log baru saya anggep aneh kasusnya :-)

>> itu saja dulu jawaban dari saya. mengenai yg lain sebetulnya ada yang
>> saya kurang sreg bila "mengikuti arus" tren REST ya, itu di controller
>> login action methodnya gak usah, pakai cek if request adalah POST maka
>> begini else maka begitu, sebaiknya sekalian Anda pisah, dari request
>> GET Anda route ke /login dan ketika request POST Anda route ke /
>> controller ybs / jangan lupa filter param logging Anda aktifkan supaya
>> password dan username Anda disembunyikan di log demi sekuritas.
>
> Bisa share lebih lanjut mengapa kurang sreg? Maaf nih mungkin saya yg
> rada oon. Kalo mau sekalian dipisah, apa berarti tinggal nambahkan
> else aja pada block "if request.post?" Lalu di dalam else itu
> tambahkan route ke /login.

BTW waktu saya di Indonesia sering banget ada kultur = ah pertanyaan
bego banget sih, gitu doang ga bisa (padahal yg ngomong/nyentil jg gak
lebih baik dari yg asli nanya). Tapi kalo sekarang sekarang gitu pas
bergaul bareng temen2x banyak dari eropa dari jerman dst, malah
kulturnya dibilang : there's no stupid question. if things are not
clear, ask.

Back to the topic, jadi contohnya Anda bisa punya  controller bernama
sessions, dgn action method new dan create. nah dua nama itu aja uda
berasa RESTful app banget, trus di routes.rb di dir config tuh tinggal
Anda pasang aja supaya /sessions/new bisa dipanggil dengan ngetikkan
/login (caranya nggak usah saya ketik supaya biar buat latian bagus
ntar kalo bisa hapal terus), dan yang create itu ya /sessions postnya
/ POST /sessions. jadi yang GET /login khusus nampilkan form login
doang, yang POST nya khusus nangkep isi dari form.

> Pernah dishare tidak (di blog anda mungkin?) suatu kasus yang
> terselesaikan dengan cara anda di atas?

jujur saya malah gak hapal 100% itu isi blog saya sendiri -_- saya
pakai search gitu kalo mo apa apa tu di catatan tercecer blog saya.
Ada plugin2x yg bagus buat belajar, saya sangat support cara Anda
melacak otentikasi karena ini kasus sering dan fundamental, makanya
bagus diseriusi buat dibuat latihan, mulai dari ngertiin sessionnya
sampai otentikasinya dienkrip segala macam gitu, bukan dgn "mental
scaffold". oops. nama pluginnya restful_authentication tu ada
github.com reponya kalo  ga salah inget, contoh solusi codes nya
lumayan lah buat jadi contoh untuk Anda merouting ke login dan logout
:-) kelemahan plugin tsb adalah tidak/belum dukung kalo user lupa
password sama nggak terintegrasi dgn ruby open id, ada yg plugin satu
lagi si DHH bikin tapi bikin sendiri, pasti kalo uda sering yg tau
langsung jadi beres bakal meningkatkan produktifitas kalo fitur ini
ada (kalo saya ada, tapi ya saya bikin sendiri). ada cara belajar lain
lagi, yaitu ekstrak sistim otentikasi dari ToombilaCMS, reponya /
source codesnya minta langsung sama si ayam niwatori tu berhubung yg
di rubyforge source codesnya dia apus buat mainan SCM macem2x gitu :-)

> Makasih mas Arie, always the 1st to respond : )
>
> Dida

-- 
Blog http://tinyurl.com/2bjgvn

Kirim email ke