[Newbies] web api authentication..
Edgar J. De Cleene
edgardec2001 at yahoo.com.ar
Thu Feb 25 09:28:45 UTC 2010
On 2/25/10 3:09 AM, "sergio_101" <sergiolist at village-buzz.com> wrote:
> part of my app requires an authenticated login to last.fm as in:
>
> http://www.last.fm/api/webauth
>
> my question is:
>
> how to i start a browser session in smalltalk to set up the
> authenticated connection, then run through each of the api calls i
> will need to make?
>
> thanks!
>
> --
>
> ----
> peace,
> sergio
> photographer, journalist, visionary
Before my new duties as Release manager, was development a new version of
Squeak Swiki using HV2 on top of Kom.
Share some tips
The starting point Web app
HVTransientView subclass: #HVNaughtieWiki
You must have in the class side
rootView
^ HVNaughtieWikiRoot
createModel
^ HVNaughtieWiki new
I attach the subclass of KomAuthDb and the class which is the root and say
where and how you log and which authenticated use.
Original KomAuthDb uses user and password, you could see my in progress
thing use some more complex.
A typical user record is 'user' an OrderedCollection('mail at mail.com'
'4/3/2005' 'nIxbXj1vR')
And a typical log is
127.0.0.1 - garduino [23/Feb/2010:07:42:52] "GET
/schemes/squeak/topborder.gif HTTP/1.1" 200 44
127.0.0.1 - garduino [23/Feb/2010:07:42:52] "GET
/schemes/squeak/squeak-green.gif HTTP/1.1" 200 1905
127.0.0.1 - garduino [23/Feb/2010:07:42:52] "GET /schemes/squeak/Catcha.gif
HTTP/1.1" 200 1183
Hope this helps
Edgar
-------------- next part --------------
'From MinimalMorphic of 8 December 2006 [latest update: #7246] on 25 February 2010 at 7:15:51 am'!
KomAuthDb subclass: #HVNaughtieUsers
instanceVariableNames: ''
classVariableNames: 'DataBase Logs'
poolDictionaries: ''
category: 'NaughtieWiki'!
!HVNaughtieUsers methodsFor: 'as yet unclassified' stamp: 'edc 2/15/2010 18:19'!
encode: password
^ password! !
!HVNaughtieUsers methodsFor: 'as yet unclassified' stamp: 'edc 2/25/2010 07:15'!
verifyPassword: aPassword forUser: userName
| log |
log := self class getDataBase
at: userName
ifAbsent: [^ false].
^ log last = aPassword! !
"-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- "!
HVNaughtieUsers class
instanceVariableNames: ''!
!HVNaughtieUsers class methodsFor: 'as yet unclassified' stamp: 'edc 2/15/2010 18:18'!
addUser: user mail: mail
self halt.! !
!HVNaughtieUsers class methodsFor: 'as yet unclassified' stamp: 'edc 2/15/2010 18:06'!
getDataBase
" HVNaughtieUsers getDataBase "
^ DataBase! !
!HVNaughtieUsers class methodsFor: 'as yet unclassified' stamp: 'edc 2/15/2010 17:57'!
setDataBase: anObject
DataBase := anObject! !
-------------- next part --------------
'From MinimalMorphic of 8 December 2006 [latest update: #7246] on 25 February 2010 at 7:16:25 am'!
HVRootView subclass: #HVNaughtieWikiRoot
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'NaughtieWiki'!
!HVNaughtieWikiRoot methodsFor: 'start-stop' stamp: 'edc 2/25/2010 07:16'!
startOn: portNum mode: mode
"Creates a new standalone http service with this root view
plugged in."
| name ma authdb |
Transcript clear.
name := viewClass
ifNil: [self class name]
ifNotNil: [viewClass name].
ma := ModuleAssembly core.
coreMod := ma currentModule.
ma
logTo: (KomLogger
on: (FileStream oldFileNamed: 'server.log')).
ma
alias: '/squeak'
to: [ma
logTo: (KomLogger on: Transcript)].
ma
alias: '/busca'
to: [ma
logTo: (KomLogger on: Transcript)].
authdb := HVNaughtieUsers new.
ma authenticate: authdb realm: 'HVNaughtie'.
ma trackSessions.
sessionMod := ma currentModule.
ma sessionTimeout: 1.
alias = ''
ifTrue: [ma
addPlug: [:request | self process: request]]
ifFalse: [ma
alias: alias
to: [ma
addPlug: [:request | self process: request]]].
^ (HttpService startOn: portNum named: name) plug: ma rootModule;
mode: mode! !
More information about the Beginners
mailing list