All Verbs | /session |
---|
export interface IAuthTokens
{
provider: string;
userId: string;
accessToken: string;
accessTokenSecret: string;
refreshToken: string;
refreshTokenExpiry?: string;
requestToken: string;
requestTokenSecret: string;
items: { [index:string]: string; };
}
// @DataContract
export class AuthUserSession implements IMeta
{
// @DataMember(Order=1)
public referrerUrl: string;
// @DataMember(Order=2)
public id: string;
// @DataMember(Order=3)
public userAuthId: string;
// @DataMember(Order=4)
public userAuthName: string;
// @DataMember(Order=5)
public userName: string;
// @DataMember(Order=6)
public twitterUserId: string;
// @DataMember(Order=7)
public twitterScreenName: string;
// @DataMember(Order=8)
public facebookUserId: string;
// @DataMember(Order=9)
public facebookUserName: string;
// @DataMember(Order=10)
public firstName: string;
// @DataMember(Order=11)
public lastName: string;
// @DataMember(Order=12)
public displayName: string;
// @DataMember(Order=13)
public company: string;
// @DataMember(Order=14)
public email: string;
// @DataMember(Order=15)
public primaryEmail: string;
// @DataMember(Order=16)
public phoneNumber: string;
// @DataMember(Order=17)
public birthDate?: string;
// @DataMember(Order=18)
public birthDateRaw: string;
// @DataMember(Order=19)
public address: string;
// @DataMember(Order=20)
public address2: string;
// @DataMember(Order=21)
public city: string;
// @DataMember(Order=22)
public state: string;
// @DataMember(Order=23)
public country: string;
// @DataMember(Order=24)
public culture: string;
// @DataMember(Order=25)
public fullName: string;
// @DataMember(Order=26)
public gender: string;
// @DataMember(Order=27)
public language: string;
// @DataMember(Order=28)
public mailAddress: string;
// @DataMember(Order=29)
public nickname: string;
// @DataMember(Order=30)
public postalCode: string;
// @DataMember(Order=31)
public timeZone: string;
// @DataMember(Order=32)
public requestTokenSecret: string;
// @DataMember(Order=33)
public createdAt: string;
// @DataMember(Order=34)
public lastModified: string;
// @DataMember(Order=35)
public roles: string[];
// @DataMember(Order=36)
public permissions: string[];
// @DataMember(Order=37)
public isAuthenticated: boolean;
// @DataMember(Order=38)
public fromToken: boolean;
// @DataMember(Order=39)
public profileUrl: string;
// @DataMember(Order=40)
public sequence: string;
// @DataMember(Order=41)
public tag: number;
// @DataMember(Order=42)
public authProvider: string;
// @DataMember(Order=43)
public providerOAuthAccess: IAuthTokens[];
// @DataMember(Order=44)
public meta: { [index:string]: string; };
// @DataMember(Order=45)
public audiences: string[];
// @DataMember(Order=46)
public scopes: string[];
// @DataMember(Order=47)
public dns: string;
// @DataMember(Order=48)
public rsa: string;
// @DataMember(Order=49)
public sid: string;
// @DataMember(Order=50)
public hash: string;
// @DataMember(Order=51)
public homePhone: string;
// @DataMember(Order=52)
public mobilePhone: string;
// @DataMember(Order=53)
public webpage: string;
// @DataMember(Order=54)
public emailConfirmed?: boolean;
// @DataMember(Order=55)
public phoneNumberConfirmed?: boolean;
// @DataMember(Order=56)
public twoFactorEnabled?: boolean;
// @DataMember(Order=57)
public securityStamp: string;
// @DataMember(Order=58)
public type: string;
// @DataMember(Order=59)
public recoveryToken: string;
// @DataMember(Order=60)
public refId?: number;
// @DataMember(Order=61)
public refIdStr: string;
public constructor(init?: Partial<AuthUserSession>) { (Object as any).assign(this, init); }
}
export class CustomUserSession extends AuthUserSession
{
// @DataMember
public customName: string;
// @DataMember
public customInfo: string;
public constructor(init?: Partial<CustomUserSession>) { super(init); (Object as any).assign(this, init); }
}
export class UnAuthInfo
{
public customInfo: string;
public constructor(init?: Partial<UnAuthInfo>) { (Object as any).assign(this, init); }
}
export class GetSessionResponse
{
public result: CustomUserSession;
public unAuthInfo: UnAuthInfo;
public responseStatus: ResponseStatus;
public constructor(init?: Partial<GetSessionResponse>) { (Object as any).assign(this, init); }
}
export class GetSession
{
public constructor(init?: Partial<GetSession>) { (Object as any).assign(this, init); }
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /session HTTP/1.1
Host: test.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { result: { customName: String, customInfo: String, referrerUrl: String, id: String, userAuthId: String, userAuthName: String, userName: String, twitterUserId: String, twitterScreenName: String, facebookUserId: String, facebookUserName: String, firstName: String, lastName: String, displayName: String, company: String, email: String, primaryEmail: String, phoneNumber: String, birthDate: 0001-01-01, birthDateRaw: String, address: String, address2: String, city: String, state: String, country: String, culture: String, fullName: String, gender: String, language: String, mailAddress: String, nickname: String, postalCode: String, timeZone: String, requestTokenSecret: String, createdAt: 0001-01-01, lastModified: 0001-01-01, roles: [ String ], permissions: [ String ], isAuthenticated: False, fromToken: False, profileUrl: String, sequence: String, tag: 0, authProvider: String, providerOAuthAccess: [ { } ], meta: { String: String }, audiences: [ String ], scopes: [ String ], dns: String, rsa: String, sid: String, hash: String, homePhone: String, mobilePhone: String, webpage: String, emailConfirmed: False, phoneNumberConfirmed: False, twoFactorEnabled: False, securityStamp: String, type: String, recoveryToken: String, refId: 0, refIdStr: String }, unAuthInfo: { customInfo: String }, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }