Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cookie Demo needed
#1
Is there any cookie usage demos?  There isn't one in the Github download of demos.

Using Tokyo 10.2.1

IW 15.0.20

Stand Alone Server

TIWStandAloneServer being used to have a custom server form.

AllowMultipleSessionsPerUser = TRUE



For our VCL / FMX Mobile App... gotta supply 4 values to login in to the service. 

Two of them can be restored back from a cookie when you come back to page at a later date/time... the other two values have to be put in.

I am not 100% sure the proper usages of 

WebApplication.Response.Cookies.AddCookie
and
webapplication.Request.CookieFields.Values


of when I should be using these... And for the addCookie, what kind of parameters I should be using for PATH and such as I don't want it
tied to a the random generated session path/id.

Thanks!
-
Reply
#2
Here is something from the old forum (forum is now readonly)
https://forums.embarcadero.com/thread.js...421#693421

Also see:
 https://forums.embarcadero.com/thread.js...882#882882


From Alex:

Reading cookie value:

Class THttpRequest, method GetCookieValue:

function GetCookieValue(const aName: string): string;

Writing a cookie:

Class THttpReply, use method AddCookie from Cookies object (type THttpCookieList), e.g.:

Reply.Cookies.AddCookie()

function AddCookie(const aName, aValue, aPath: string; const aExpires: TDateTime; const aHttpOnly: Boolean = False; const aSecure: Boolean = False): Integer;


Also from Alex in the second thread, HTTPOnly...
Is there a way to set the HTTPOnly flag in the Set-Cookie HTTP
response header?

Is this a custom cookie or the default session tracking cookie?

If this is the default session tracking cookie, just use the
ServerController.CookieOptions property:

- set CookieOptions.HttpOnly to True/False, according to your
requirements

If this is a custom cookie, you can set this option when adding the
cookie to the response cookie collection:

THttpReply.Cookies is the cookie coolection object.

You use its Add() method to add a custom cookie to your response, and
this method has this signature:

THttpCookieList.AddCookie(const aName, aValue, aPath: string; const
aExpires: TDateTime; const aHttpOnly: Boolean = False; const aSecure:
Boolean = False): Integer;

Dan
Reply
#3
I ran into those too.. either calls changed, or missing some information in those original posts.

I need cookies that are not locked to the session. So user can come back at a later date and data is there to grab?
Reply
#4
(04-25-2019, 05:05 AM)cpstevenc Wrote: I ran into those too.. either calls changed, or missing some information in those original posts.

I need cookies that are not locked to the session. So user can come back at a later date and data is there to grab?

Try this to set your cookie.
 
Code:
 webapplication.Response.Cookies.Add(THTTPCookie.Create(CookieName,CookieValue,'/',Expireon,true));
ExpireOn is the UTCDateTime (as a Real).  Set to -1 for a session cookie.
Name/Value are String.

Try this to read the cookie:
Code:
  Result := webapplication.Request.CookieFields.Values[sName];

It should work, but there may be better ways.

Dan
Reply
#5
(04-25-2019, 06:14 AM)DanBarclay Wrote:
(04-25-2019, 05:05 AM)cpstevenc Wrote: I ran into those too.. either calls changed, or missing some information in those original posts.

I need cookies that are not locked to the session. So user can come back at a later date and data is there to grab?

Try this to set your cookie.
 
Code:
 webapplication.Response.Cookies.Add(THTTPCookie.Create(CookieName,CookieValue,'/',Expireon,true));
ExpireOn is the UTCDateTime (as a Real).  Set to -1 for a session cookie.
Name/Value are String.

Try this to read the cookie:
Code:
  Result := webapplication.Request.CookieFields.Values[sName];

It should work, but there may be better ways.

Dan

Thanks!

UTCDateTime was my issue.  

Also used Chrome inspector and took me a bit to find the call that was actually kicking off the COOKIE code to save and saw my date being used was in like 1927 .... so expired Smile
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)