From 8cf53f378a8411b56b999aec8fa999c3f1b18d3e Mon Sep 17 00:00:00 2001 From: Gao Sun Date: Tue, 19 Apr 2022 11:31:27 +0800 Subject: [PATCH] docs: add Swift Logto core reference (#573) * docs: add Swift Logto core reference * fix: build --- packages/docs/docs/sdk/README.md | 1 + .../docs/sdk/Swift/Logto/Enums/JwtField.md | 24 ++++ .../docs/sdk/Swift/Logto/Enums/LogtoCore.md | 135 ++++++++++++++++++ .../Swift/Logto/Enums/LogtoErrors.Response.md | 20 +++ .../Enums/LogtoErrors.UriVerification.md | 38 +++++ .../Enums/LogtoErrors.UrlConstruction.md | 20 +++ .../docs/sdk/Swift/Logto/Enums/LogtoErrors.md | 16 +++ .../Logto/Enums/LogtoRequest.HttpMethod.md | 20 +++ .../sdk/Swift/Logto/Enums/LogtoRequest.md | 77 ++++++++++ .../sdk/Swift/Logto/Enums/LogtoUtilities.md | 67 +++++++++ .../sdk/Swift/Logto/Enums/_category_.json | 3 + .../sdk/Swift/Logto/Extensions/URLSession.md | 13 ++ .../Swift/Logto/Extensions/_category_.json | 3 + .../Swift/Logto/Protocols/NetworkSession.md | 14 ++ .../sdk/Swift/Logto/Protocols/_category_.json | 3 + packages/docs/docs/sdk/Swift/Logto/README.md | 32 +++++ .../sdk/Swift/Logto/Structs/IdTokenClaims.md | 44 ++++++ .../docs/sdk/Swift/Logto/Structs/JwtHeader.md | 20 +++ .../Structs/LogtoCore.CodeTokenResponse.md | 38 +++++ .../Structs/LogtoCore.OidcConfigResponse.md | 50 +++++++ .../LogtoCore.RefreshTokenTokenResponse.md | 38 +++++ .../Structs/LogtoCore.UserInfoResponse.md | 14 ++ .../sdk/Swift/Logto/Structs/_category_.json | 3 + packages/docs/docs/sdk/Swift/README.md | 1 + .../docs/{intro.md => tutorial/README.md} | 0 .../integrate-sdk/_category_.json | 0 .../integrate-sdk/react/_category_.json | 0 .../integrate-sdk/react/_step-1.mdx | 0 .../integrate-sdk/react/_step-2.md | 0 .../integrate-sdk/react/_step-3.md | 0 .../integrate-sdk/react/_step-4.md | 0 .../integrate-sdk/react/_step-5.md | 0 .../integrate-sdk/react/index.mdx | 0 packages/docs/docusaurus.config.js | 12 +- packages/docs/sidebars.js | 3 +- packages/docs/src/pages/index.tsx | 2 +- 36 files changed, 707 insertions(+), 4 deletions(-) create mode 100644 packages/docs/docs/sdk/README.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/JwtField.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoCore.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.Response.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UriVerification.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UrlConstruction.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.HttpMethod.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/LogtoUtilities.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Enums/_category_.json create mode 100644 packages/docs/docs/sdk/Swift/Logto/Extensions/URLSession.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Extensions/_category_.json create mode 100644 packages/docs/docs/sdk/Swift/Logto/Protocols/NetworkSession.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Protocols/_category_.json create mode 100644 packages/docs/docs/sdk/Swift/Logto/README.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/IdTokenClaims.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/JwtHeader.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.CodeTokenResponse.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.OidcConfigResponse.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.RefreshTokenTokenResponse.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.UserInfoResponse.md create mode 100644 packages/docs/docs/sdk/Swift/Logto/Structs/_category_.json create mode 100644 packages/docs/docs/sdk/Swift/README.md rename packages/docs/docs/{intro.md => tutorial/README.md} (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/_category_.json (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_category_.json (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_step-1.mdx (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_step-2.md (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_step-3.md (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_step-4.md (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/_step-5.md (100%) rename packages/docs/docs/{ => tutorial}/integrate-sdk/react/index.mdx (100%) diff --git a/packages/docs/docs/sdk/README.md b/packages/docs/docs/sdk/README.md new file mode 100644 index 000000000..07dd0c5c7 --- /dev/null +++ b/packages/docs/docs/sdk/README.md @@ -0,0 +1 @@ +# Overview diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/JwtField.md b/packages/docs/docs/sdk/Swift/Logto/Enums/JwtField.md new file mode 100644 index 000000000..e4dd14764 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/JwtField.md @@ -0,0 +1,24 @@ +--- +sidebar_position: 1 +--- + +**ENUM** + +# `JwtField` + +```swift +public enum JwtField +``` + +## Cases +### `audience` + +```swift +case audience +``` + +### `issuer` + +```swift +case issuer +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoCore.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoCore.md new file mode 100644 index 000000000..b7e355c1a --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoCore.md @@ -0,0 +1,135 @@ +--- +sidebar_position: 2 +--- + +**ENUM** + +# `LogtoCore` + +```swift +public enum LogtoCore +``` + +## Structs +### [CodeTokenResponse](../Structs/LogtoCore.CodeTokenResponse.md) +### [OidcConfigResponse](../Structs/LogtoCore.OidcConfigResponse.md) +### [RefreshTokenTokenResponse](../Structs/LogtoCore.RefreshTokenTokenResponse.md) +### [UserInfoResponse](../Structs/LogtoCore.UserInfoResponse.md) + +## Properties +### `postHeaders` + +```swift +static let postHeaders: [String: String] = [ + "Content-Type": "application/x-www-form-urlencoded", +] +``` + +## Methods +### `fetchOidcConfig(useSession:uri:)` + +```swift +static func fetchOidcConfig( + useSession session: NetworkSession = URLSession.shared, + uri: URL +) async throws -> OidcConfigResponse +``` + +### `fetchToken(useSession:byAuthorizationCode:codeVerifier:tokenEndpoint:clientId:redirectUri:)` + +```swift +static func fetchToken( + useSession session: NetworkSession = URLSession.shared, + byAuthorizationCode code: String, + codeVerifier: String, + tokenEndpoint: String, + clientId: String, + redirectUri: String +) async throws -> CodeTokenResponse +``` + +Fetch token by `authorization_code`. +The returned `access_token` is only for user info enpoint. +Note the function will NOT validate any token in the response. + +### `fetchToken(useSession:byRefreshToken:tokenEndpoint:clientId:resource:scopes:)` + +```swift +static func fetchToken( + useSession session: NetworkSession = URLSession.shared, + byRefreshToken refreshToken: String, + tokenEndpoint: String, + clientId: String, + resource: String?, + scopes: [String] +) async throws -> RefreshTokenTokenResponse +``` + +Fetch token by `refresh_token`. +Note the function will NOT validate any token in the response. + +### `fetchUserInfo(useSession:userInfoEndpoint:accessToken:)` + +```swift +static func fetchUserInfo( + useSession session: NetworkSession = URLSession.shared, + userInfoEndpoint: String, + accessToken: String +) async throws -> UserInfoResponse +``` + +### `fetchJwkSet(useSession:jwksUri:)` + +```swift +static func fetchJwkSet( + useSession session: NetworkSession = URLSession.shared, + jwksUri: String +) async throws -> JWKSet +``` + +### `generateSignInUri(authorizationEndpoint:clientId:redirectUri:codeChallenge:state:scopes:resources:)` + +```swift +static func generateSignInUri( + authorizationEndpoint: String, + clientId: String, + redirectUri: URL, + codeChallenge: String, + state: String, + scopes: [String] = [], + resources: [String] = [] +) throws -> URL +``` + +### `generateSignOutUri(endSessionEndpoint:idToken:postLogoutRedirectUri:)` + +```swift +static func generateSignOutUri( + endSessionEndpoint: String, + idToken: String, + postLogoutRedirectUri: String? +) throws -> URL +``` + +### `revoke(useSession:token:revocationEndpoint:clientId:)` + +```swift +static func revoke( + useSession session: NetworkSession = URLSession.shared, + token: String, + revocationEndpoint: String, + clientId: String +) async throws +``` + +### `verifyAndParseSignInCallbackUri(_:redirectUri:state:)` + +```swift +static func verifyAndParseSignInCallbackUri( + _ callbackUri: URL, + redirectUri: URL, + state: String +) throws -> String +``` + +Verify the given `callbackUri` matches the requirements and return `code` parameter if success. diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.Response.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.Response.md new file mode 100644 index 000000000..ca1fd9e43 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.Response.md @@ -0,0 +1,20 @@ +**ENUM** + +# `LogtoErrors.Response` + +```swift +public enum Response: LocalizedError, Equatable +``` + +## Cases +### `notHttpResponse(response:)` + +```swift +case notHttpResponse(response: URLResponse?) +``` + +### `withCode(code:httpResponse:data:)` + +```swift +case withCode(code: Int, httpResponse: HTTPURLResponse, data: Data?) +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UriVerification.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UriVerification.md new file mode 100644 index 000000000..bb6ae351d --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UriVerification.md @@ -0,0 +1,38 @@ +**ENUM** + +# `LogtoErrors.UriVerification` + +```swift +public enum UriVerification: LocalizedError, Equatable +``` + +## Cases +### `redirectUriMismatched` + +```swift +case redirectUriMismatched +``` + +### `decodeComponentsFailed` + +```swift +case decodeComponentsFailed +``` + +### `stateMismatched` + +```swift +case stateMismatched +``` + +### `errorItemFound(items:)` + +```swift +case errorItemFound(items: [URLQueryItem]) +``` + +### `missingCode` + +```swift +case missingCode +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UrlConstruction.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UrlConstruction.md new file mode 100644 index 000000000..7c1663693 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.UrlConstruction.md @@ -0,0 +1,20 @@ +**ENUM** + +# `LogtoErrors.UrlConstruction` + +```swift +public enum UrlConstruction: LocalizedError, Equatable +``` + +## Cases +### `invalidEndpoint` + +```swift +case invalidEndpoint +``` + +### `unableToConstructUrl` + +```swift +case unableToConstructUrl +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.md new file mode 100644 index 000000000..e114d860c --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoErrors.md @@ -0,0 +1,16 @@ +--- +sidebar_position: 3 +--- +**ENUM** + +# `LogtoErrors` + +```swift +public enum LogtoErrors +``` + +## Enums + +### [Response](LogtoErrors.Response.md) +### [UriVerification](LogtoErrors.UriVerification.md) +### [UrlConstruction](LogtoErrors.UrlConstruction.md) diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.HttpMethod.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.HttpMethod.md new file mode 100644 index 000000000..a0fb74ea6 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.HttpMethod.md @@ -0,0 +1,20 @@ +**ENUM** + +# `LogtoRequest.HttpMethod` + +```swift +public enum HttpMethod: String +``` + +## Cases +### `get` + +```swift +case get = "GET" +``` + +### `post` + +```swift +case post = "POST" +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.md new file mode 100644 index 000000000..9b64ff2c6 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoRequest.md @@ -0,0 +1,77 @@ +**ENUM** + +# `LogtoRequest` + +```swift +public enum LogtoRequest +``` + +## Enums +### [LogtoRequest.HttpMethod](LogtoRequest.HttpMethod.md) + +## Methods +### `load(useSession:method:url:headers:body:)` + +```swift +public static func load( + useSession session: NetworkSession, + method: HttpMethod, + url: URL, + headers: [String: String] = [:], + body: Data? = nil +) async -> (Data?, Error?) +``` + +### `load(useSession:method:endpoint:headers:body:)` + +```swift +public static func load( + useSession session: NetworkSession, + method: HttpMethod, + endpoint: String, + headers: [String: String] = [:], + body: Data? = nil +) async -> (Data?, Error?) +``` + +### `get(useSession:endpoint:headers:)` + +```swift +public static func get( + useSession session: NetworkSession, + endpoint: String, + headers: [String: String] = [:] +) async throws -> T +``` + +### `get(useSession:url:headers:)` + +```swift +public static func get( + useSession session: NetworkSession, + url: URL, + headers: [String: String] = [:] +) async throws -> T +``` + +### `post(useSession:endpoint:headers:body:)` + +```swift +public static func post( + useSession session: NetworkSession, + endpoint: String, + headers: [String: String] = [:], + body: Data? = nil +) async throws -> T +``` + +### `post(useSession:endpoint:headers:body:)` + +```swift +public static func post( + useSession session: NetworkSession, + endpoint: String, + headers: [String: String] = [:], + body: Data? = nil +) async throws +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoUtilities.md b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoUtilities.md new file mode 100644 index 000000000..3ec578a76 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/LogtoUtilities.md @@ -0,0 +1,67 @@ +**ENUM** + +# `LogtoUtilities` + +```swift +public enum LogtoUtilities +``` + +## Methods +### `withReservedScopes(_:)` + +```swift +public static func withReservedScopes(_ scopes: [String]) -> [String] +``` + +### `generateState()` + +```swift +public static func generateState() -> String +``` + +### `generateCodeVerifier()` + +```swift +public static func generateCodeVerifier() -> String +``` + +### `generateCodeChallenge(codeVerifier:)` + +```swift +public static func generateCodeChallenge(codeVerifier: String) -> String +``` + +### `decodeIdToken(_:)` + +```swift +static func decodeIdToken(_ idToken: String) throws -> IdTokenClaims +``` + +Decode ID Token claims WITHOUT validation. +- Parameter token: The JWT to decode +- Returns: A set of ID Token claims + +#### Parameters + +| Name | Description | +| ---- | ----------- | +| token | The JWT to decode | + +### `verifyIdToken(_:issuer:clientId:jwks:forTimeInterval:)` + +```swift +static func verifyIdToken( + _ idToken: String, + issuer: String, + clientId: String, + jwks: JWKSet, + forTimeInterval: TimeInterval = Date().timeIntervalSince1970 +) throws +``` + +Verify the give ID Token: +* One of the JWKs matches the token. +* Issuer matches token payload `iss`. +* Client ID matches token payload `aud`. +* The token is not expired. +* The token is issued in +/- 1min. diff --git a/packages/docs/docs/sdk/Swift/Logto/Enums/_category_.json b/packages/docs/docs/sdk/Swift/Logto/Enums/_category_.json new file mode 100644 index 000000000..818afe301 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Enums/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 1 +} diff --git a/packages/docs/docs/sdk/Swift/Logto/Extensions/URLSession.md b/packages/docs/docs/sdk/Swift/Logto/Extensions/URLSession.md new file mode 100644 index 000000000..22a92ddb4 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Extensions/URLSession.md @@ -0,0 +1,13 @@ +**EXTENSION** + +# `URLSession` +```swift +extension URLSession: NetworkSession +``` + +## Methods +### `loadData(with:)` + +```swift +public func loadData(with request: URLRequest) async -> (Data?, Error?) +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Extensions/_category_.json b/packages/docs/docs/sdk/Swift/Logto/Extensions/_category_.json new file mode 100644 index 000000000..484e2553d --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Extensions/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 4 +} diff --git a/packages/docs/docs/sdk/Swift/Logto/Protocols/NetworkSession.md b/packages/docs/docs/sdk/Swift/Logto/Protocols/NetworkSession.md new file mode 100644 index 000000000..ef822809c --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Protocols/NetworkSession.md @@ -0,0 +1,14 @@ +**PROTOCOL** + +# `NetworkSession` + +```swift +public protocol NetworkSession +``` + +## Methods +### `loadData(with:)` + +```swift +func loadData(with request: URLRequest) async -> (Data?, Error?) +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Protocols/_category_.json b/packages/docs/docs/sdk/Swift/Logto/Protocols/_category_.json new file mode 100644 index 000000000..0c949e0fa --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Protocols/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 3 +} diff --git a/packages/docs/docs/sdk/Swift/Logto/README.md b/packages/docs/docs/sdk/Swift/Logto/README.md new file mode 100644 index 000000000..1bf4f0e24 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/README.md @@ -0,0 +1,32 @@ +# Logto Module + +## Structs + +- [IdTokenClaims](Structs/IdTokenClaims.md) +- [JwtHeader](Structs/JwtHeader.md) +- [LogtoCore.CodeTokenResponse](Structs/LogtoCore.CodeTokenResponse.md) +- [LogtoCore.OidcConfigResponse](Structs/LogtoCore.OidcConfigResponse.md) +- [LogtoCore.RefreshTokenTokenResponse](Structs/LogtoCore.RefreshTokenTokenResponse.md) +- [LogtoCore.UserInfoResponse](Structs/LogtoCore.UserInfoResponse.md) + +## Enums + +- [JwtField](Enums/JwtField.md) +- [LogtoCore](Enums/LogtoCore.md) +- [LogtoErrors](Enums/LogtoErrors.md) +- [LogtoErrors.Response](Enums/LogtoErrors.Response.md) +- [LogtoErrors.UriVerification](Enums/LogtoErrors.UriVerification.md) +- [LogtoErrors.UrlConstruction](Enums/LogtoErrors.UrlConstruction.md) +- [LogtoRequest](Enums/LogtoRequest.md) +- [LogtoRequest.HttpMethod](Enums/LogtoRequest.HttpMethod.md) +- [LogtoUtilities](Enums/LogtoUtilities.md) + +## Protocols + +- [NetworkSession](Protocols/NetworkSession.md) + +## Extensions + +- [URLSession](Extensions/URLSession.md) + +This file was originally generated by [SourceDocs](https://github.com/eneko/SourceDocs) diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/IdTokenClaims.md b/packages/docs/docs/sdk/Swift/Logto/Structs/IdTokenClaims.md new file mode 100644 index 000000000..c9b7ca584 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/IdTokenClaims.md @@ -0,0 +1,44 @@ +**STRUCT** + +# `IdTokenClaims` + +```swift +public struct IdTokenClaims: Codable, Equatable +``` + +## Properties +### `sub` + +```swift +public let sub: String +``` + +### `atHash` + +```swift +public let atHash: String? +``` + +### `aud` + +```swift +public let aud: String +``` + +### `exp` + +```swift +public let exp: Int64 +``` + +### `iat` + +```swift +public let iat: Int64 +``` + +### `iss` + +```swift +public let iss: String +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/JwtHeader.md b/packages/docs/docs/sdk/Swift/Logto/Structs/JwtHeader.md new file mode 100644 index 000000000..0afe3b410 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/JwtHeader.md @@ -0,0 +1,20 @@ +**STRUCT** + +# `JwtHeader` + +```swift +public struct JwtHeader: Codable +``` + +## Properties +### `alg` + +```swift +public let alg: SignatureAlgorithm +``` + +### `typ` + +```swift +public let typ: TokenType +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.CodeTokenResponse.md b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.CodeTokenResponse.md new file mode 100644 index 000000000..1ec9a0031 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.CodeTokenResponse.md @@ -0,0 +1,38 @@ +**STRUCT** + +# `LogtoCore.CodeTokenResponse` + +```swift +struct CodeTokenResponse: Codable, Equatable +``` + +## Properties +### `accessToken` + +```swift +public let accessToken: String +``` + +### `refreshToken` + +```swift +public let refreshToken: String +``` + +### `idToken` + +```swift +public let idToken: String +``` + +### `scope` + +```swift +public let scope: String +``` + +### `expiresIn` + +```swift +public let expiresIn: Int64 +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.OidcConfigResponse.md b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.OidcConfigResponse.md new file mode 100644 index 000000000..5e419cd83 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.OidcConfigResponse.md @@ -0,0 +1,50 @@ +**STRUCT** + +# `LogtoCore.OidcConfigResponse` + +```swift +struct OidcConfigResponse: Codable, Equatable +``` + +## Properties +### `authorizationEndpoint` + +```swift +public let authorizationEndpoint: String +``` + +### `tokenEndpoint` + +```swift +public let tokenEndpoint: String +``` + +### `endSessionEndpoint` + +```swift +public let endSessionEndpoint: String +``` + +### `revocationEndpoint` + +```swift +public let revocationEndpoint: String +``` + +### `userinfoEndpoint` + +```swift +public let userinfoEndpoint: String +``` + +### `jwksUri` + +```swift +public let jwksUri: String +``` + +### `issuer` + +```swift +public let issuer: String +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.RefreshTokenTokenResponse.md b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.RefreshTokenTokenResponse.md new file mode 100644 index 000000000..fba1a9fe8 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.RefreshTokenTokenResponse.md @@ -0,0 +1,38 @@ +**STRUCT** + +# `LogtoCore.RefreshTokenTokenResponse` + +```swift +struct RefreshTokenTokenResponse: Codable, Equatable +``` + +## Properties +### `accessToken` + +```swift +public let accessToken: String +``` + +### `refreshToken` + +```swift +public let refreshToken: String +``` + +### `idToken` + +```swift +public let idToken: String? +``` + +### `scope` + +```swift +public let scope: String +``` + +### `expiresIn` + +```swift +public let expiresIn: Int64 +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.UserInfoResponse.md b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.UserInfoResponse.md new file mode 100644 index 000000000..0326d1883 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/LogtoCore.UserInfoResponse.md @@ -0,0 +1,14 @@ +**STRUCT** + +# `LogtoCore.UserInfoResponse` + +```swift +struct UserInfoResponse: Codable, Equatable +``` + +## Properties +### `sub` + +```swift +public let sub: String +``` diff --git a/packages/docs/docs/sdk/Swift/Logto/Structs/_category_.json b/packages/docs/docs/sdk/Swift/Logto/Structs/_category_.json new file mode 100644 index 000000000..046edaa30 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/Logto/Structs/_category_.json @@ -0,0 +1,3 @@ +{ + "position": 2 +} diff --git a/packages/docs/docs/sdk/Swift/README.md b/packages/docs/docs/sdk/Swift/README.md new file mode 100644 index 000000000..3002281b6 --- /dev/null +++ b/packages/docs/docs/sdk/Swift/README.md @@ -0,0 +1 @@ +# Swift SDK Reference diff --git a/packages/docs/docs/intro.md b/packages/docs/docs/tutorial/README.md similarity index 100% rename from packages/docs/docs/intro.md rename to packages/docs/docs/tutorial/README.md diff --git a/packages/docs/docs/integrate-sdk/_category_.json b/packages/docs/docs/tutorial/integrate-sdk/_category_.json similarity index 100% rename from packages/docs/docs/integrate-sdk/_category_.json rename to packages/docs/docs/tutorial/integrate-sdk/_category_.json diff --git a/packages/docs/docs/integrate-sdk/react/_category_.json b/packages/docs/docs/tutorial/integrate-sdk/react/_category_.json similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_category_.json rename to packages/docs/docs/tutorial/integrate-sdk/react/_category_.json diff --git a/packages/docs/docs/integrate-sdk/react/_step-1.mdx b/packages/docs/docs/tutorial/integrate-sdk/react/_step-1.mdx similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_step-1.mdx rename to packages/docs/docs/tutorial/integrate-sdk/react/_step-1.mdx diff --git a/packages/docs/docs/integrate-sdk/react/_step-2.md b/packages/docs/docs/tutorial/integrate-sdk/react/_step-2.md similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_step-2.md rename to packages/docs/docs/tutorial/integrate-sdk/react/_step-2.md diff --git a/packages/docs/docs/integrate-sdk/react/_step-3.md b/packages/docs/docs/tutorial/integrate-sdk/react/_step-3.md similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_step-3.md rename to packages/docs/docs/tutorial/integrate-sdk/react/_step-3.md diff --git a/packages/docs/docs/integrate-sdk/react/_step-4.md b/packages/docs/docs/tutorial/integrate-sdk/react/_step-4.md similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_step-4.md rename to packages/docs/docs/tutorial/integrate-sdk/react/_step-4.md diff --git a/packages/docs/docs/integrate-sdk/react/_step-5.md b/packages/docs/docs/tutorial/integrate-sdk/react/_step-5.md similarity index 100% rename from packages/docs/docs/integrate-sdk/react/_step-5.md rename to packages/docs/docs/tutorial/integrate-sdk/react/_step-5.md diff --git a/packages/docs/docs/integrate-sdk/react/index.mdx b/packages/docs/docs/tutorial/integrate-sdk/react/index.mdx similarity index 100% rename from packages/docs/docs/integrate-sdk/react/index.mdx rename to packages/docs/docs/tutorial/integrate-sdk/react/index.mdx diff --git a/packages/docs/docusaurus.config.js b/packages/docs/docusaurus.config.js index 845616fb5..62a7635de 100644 --- a/packages/docs/docusaurus.config.js +++ b/packages/docs/docusaurus.config.js @@ -27,6 +27,7 @@ const config = { /** @type {import('@docusaurus/preset-classic').Options} */ ({ docs: { + breadcrumbs: false, sidebarPath: require.resolve('./sidebars.js'), // Please change this to your repo. editUrl: 'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/', @@ -50,10 +51,16 @@ const config = { items: [ { type: 'doc', - docId: 'intro', + docId: 'tutorial/README', position: 'left', label: 'Tutorial', }, + { + type: 'doc', + docId: 'sdk/README', + position: 'left', + label: 'SDK', + }, { type: 'localeDropdown', position: 'right', @@ -73,7 +80,7 @@ const config = { items: [ { label: 'Tutorial', - to: '/docs/intro', + to: '/docs/tutorial', }, ], }, @@ -97,6 +104,7 @@ const config = { prism: { theme: lightCodeTheme, darkTheme: darkCodeTheme, + additionalLanguages: ['swift'], }, }), }; diff --git a/packages/docs/sidebars.js b/packages/docs/sidebars.js index fd342f2cd..901090f8c 100644 --- a/packages/docs/sidebars.js +++ b/packages/docs/sidebars.js @@ -14,7 +14,8 @@ /** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ const sidebars = { // By default, Docusaurus generates a sidebar from the docs folder structure - tutorialSidebar: [{type: 'autogenerated', dirName: '.'}], + tutorialSidebar: [{type: 'autogenerated', dirName: 'tutorial'}], + sdkSidebar: [{type: 'autogenerated', dirName: 'sdk'}], // But you can create a sidebar manually /* diff --git a/packages/docs/src/pages/index.tsx b/packages/docs/src/pages/index.tsx index 3408a41e7..f9ae373d5 100644 --- a/packages/docs/src/pages/index.tsx +++ b/packages/docs/src/pages/index.tsx @@ -16,7 +16,7 @@ function HomepageHeader() {
+ to="/docs/tutorial"> Docusaurus Tutorial - 5min ⏱️