swift-honey-17379
07/26/2024, 12:44 PMchilly-king-10285
07/26/2024, 12:44 PMchilly-king-10285
07/26/2024, 12:45 PMbash ory create oauth2-client --token-endpoint-auth-method client_secret_post
Then, request access: javascript const clientId = "your_client_id" const authorizationUrl = `https://$<http://PROJECT_SLUG.projects.oryapis.com/oauth2/auth?response_type=code&client_id=${clientId}&redirect_uri=https://myapp.com/callback&scope=openid%20offline_access&state=12345|PROJECT_SLUG.projects.oryapis.com/oauth2/auth?response_type=code&client_id=${clientId}&redirect_uri=https://myapp.com/callback&scope=openid%20offline_access&state=12345>` // Redirect the user to the Authorization Server to start the authorization flow window.location = authorizationUrl
Finally, exchange the authorization code for a token: javascript const clientSecret = "your_client_secret" const code = "authorization_code_received_from_auth_server" const tokenUrl = "https://$<http://PROJECT_SLUG.projects.oryapis.com/oauth2/token|PROJECT_SLUG.projects.oryapis.com/oauth2/token>" const requestBody = `grant_type=authorization_code&client_id=${clientId}&client_secret=${clientSecret}&code=${code}&redirect_uri=<https://myapp.com/callback>` fetch(tokenUrl, { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: requestBody, }) .then((response) => response.json()) .then((data) => console.log(data)) .catch((error) => console.error(error))
(Source: [Web server app and confidential client](https://www.ory.sh/docs/oauth2-oidc/authorization-code-flow#web-server-app-and-confidential-client)) 2. Authorization Code Flow with PKCE (Mobile/Native App) First, create an OAuth2 client: bash ory create oauth2-client --token-endpoint-auth-method none
Then, request consent: javascript const clientId = "your_client_id" const { codeChallenge, codeVerifier } = await generatePKCES256() const authorizationUrl = `<https://auth-server.com/authorize?response_type=code&client_id=${clientId}&redirect_uri=myapp://callback&scope=openid&state=12345&code_challenge_method=S256&code_challenge=${codeChallenge}>` // Launch the system browser to start the authorization flow Browser.openURL(authorizationUrl)
(Source: [Mobile/native and public client with PKCE and custom redirect scheme](https://www.ory.sh/docs/oauth2-oidc/authorization-code-flow#examples)) Please note that these are simplified examples and you may need to adjust them according to your specific use case and environment.