POST | /auth/{provider} | ||
---|---|---|---|
GET,POST | /auth |
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
public class dtos
{
/**
* Sign In
*/
@Api(Description="Sign In")
@DataContract
public static class Authenticate implements IPost, IMeta
{
/**
* AuthProvider, e.g. credentials
*/
@DataMember(Order=1)
public String provider = null;
@DataMember(Order=2)
public String userName = null;
@DataMember(Order=3)
public String password = null;
@DataMember(Order=4)
public Boolean rememberMe = null;
@DataMember(Order=5)
public String accessToken = null;
@DataMember(Order=6)
public String accessTokenSecret = null;
@DataMember(Order=7)
public String returnUrl = null;
@DataMember(Order=8)
public String errorView = null;
@DataMember(Order=9)
public HashMap<String,String> meta = null;
public String getProvider() { return provider; }
public Authenticate setProvider(String value) { this.provider = value; return this; }
public String getUserName() { return userName; }
public Authenticate setUserName(String value) { this.userName = value; return this; }
public String getPassword() { return password; }
public Authenticate setPassword(String value) { this.password = value; return this; }
public Boolean isRememberMe() { return rememberMe; }
public Authenticate setRememberMe(Boolean value) { this.rememberMe = value; return this; }
public String getAccessToken() { return accessToken; }
public Authenticate setAccessToken(String value) { this.accessToken = value; return this; }
public String getAccessTokenSecret() { return accessTokenSecret; }
public Authenticate setAccessTokenSecret(String value) { this.accessTokenSecret = value; return this; }
public String getReturnUrl() { return returnUrl; }
public Authenticate setReturnUrl(String value) { this.returnUrl = value; return this; }
public String getErrorView() { return errorView; }
public Authenticate setErrorView(String value) { this.errorView = value; return this; }
public HashMap<String,String> getMeta() { return meta; }
public Authenticate setMeta(HashMap<String,String> value) { this.meta = value; return this; }
}
@DataContract
public static class AuthenticateResponse implements IMeta, IHasSessionId, IHasBearerToken
{
@DataMember(Order=1)
public String userId = null;
@DataMember(Order=2)
public String sessionId = null;
@DataMember(Order=3)
public String userName = null;
@DataMember(Order=4)
public String displayName = null;
@DataMember(Order=5)
public String referrerUrl = null;
@DataMember(Order=6)
public String bearerToken = null;
@DataMember(Order=7)
public String refreshToken = null;
@DataMember(Order=8)
public Date refreshTokenExpiry = null;
@DataMember(Order=9)
public String profileUrl = null;
@DataMember(Order=10)
public ArrayList<String> roles = null;
@DataMember(Order=11)
public ArrayList<String> permissions = null;
@DataMember(Order=12)
public String authProvider = null;
@DataMember(Order=13)
public ResponseStatus responseStatus = null;
@DataMember(Order=14)
public HashMap<String,String> meta = null;
public String getUserId() { return userId; }
public AuthenticateResponse setUserId(String value) { this.userId = value; return this; }
public String getSessionId() { return sessionId; }
public AuthenticateResponse setSessionId(String value) { this.sessionId = value; return this; }
public String getUserName() { return userName; }
public AuthenticateResponse setUserName(String value) { this.userName = value; return this; }
public String getDisplayName() { return displayName; }
public AuthenticateResponse setDisplayName(String value) { this.displayName = value; return this; }
public String getReferrerUrl() { return referrerUrl; }
public AuthenticateResponse setReferrerUrl(String value) { this.referrerUrl = value; return this; }
public String getBearerToken() { return bearerToken; }
public AuthenticateResponse setBearerToken(String value) { this.bearerToken = value; return this; }
public String getRefreshToken() { return refreshToken; }
public AuthenticateResponse setRefreshToken(String value) { this.refreshToken = value; return this; }
public Date getRefreshTokenExpiry() { return refreshTokenExpiry; }
public AuthenticateResponse setRefreshTokenExpiry(Date value) { this.refreshTokenExpiry = value; return this; }
public String getProfileUrl() { return profileUrl; }
public AuthenticateResponse setProfileUrl(String value) { this.profileUrl = value; return this; }
public ArrayList<String> getRoles() { return roles; }
public AuthenticateResponse setRoles(ArrayList<String> value) { this.roles = value; return this; }
public ArrayList<String> getPermissions() { return permissions; }
public AuthenticateResponse setPermissions(ArrayList<String> value) { this.permissions = value; return this; }
public String getAuthProvider() { return authProvider; }
public AuthenticateResponse setAuthProvider(String value) { this.authProvider = value; return this; }
public ResponseStatus getResponseStatus() { return responseStatus; }
public AuthenticateResponse setResponseStatus(ResponseStatus value) { this.responseStatus = value; return this; }
public HashMap<String,String> getMeta() { return meta; }
public AuthenticateResponse setMeta(HashMap<String,String> value) { this.meta = value; return this; }
}
}
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 /auth/{provider} HTTP/1.1
Host: blazor-gallery.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
provider: String,
userName: String,
password: String,
rememberMe: False,
accessToken: String,
accessTokenSecret: String,
returnUrl: String,
errorView: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { userId: String, sessionId: String, userName: String, displayName: String, referrerUrl: String, bearerToken: String, refreshToken: String, refreshTokenExpiry: 0001-01-01, profileUrl: String, roles: [ String ], permissions: [ String ], authProvider: String, responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } }, meta: { String: String } }