All Verbs | /jwt |
---|
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 CreateJwtResponse
{
public token: string;
public responseStatus: ResponseStatus;
public constructor(init?: Partial<CreateJwtResponse>) { (Object as any).assign(this, init); }
}
export class CreateJwt extends AuthUserSession
{
public jwtExpiry?: string;
public constructor(init?: Partial<CreateJwt>) { super(init); (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 /jwt HTTP/1.1
Host: test.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
jwtExpiry: 0001-01-01,
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
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { token: String, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }