Move link-building to the server...
All checks were successful
build-docker-imge / Build the docker container (push) Successful in 28m38s
All checks were successful
build-docker-imge / Build the docker container (push) Successful in 28m38s
This commit is contained in:
parent
086db87972
commit
d514029e5a
8
api/src/functions/oauthStart/oauthStart.scenarios.ts
Normal file
8
api/src/functions/oauthStart/oauthStart.scenarios.ts
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import type { ScenarioData } from '@redwoodjs/testing/api'
|
||||||
|
|
||||||
|
export const standard = defineScenario({
|
||||||
|
// Define the "fixture" to write into your test database here
|
||||||
|
// See guide: https://redwoodjs.com/docs/testing#scenarios
|
||||||
|
})
|
||||||
|
|
||||||
|
export type StandardScenario = ScenarioData<unknown>
|
29
api/src/functions/oauthStart/oauthStart.test.ts
Normal file
29
api/src/functions/oauthStart/oauthStart.test.ts
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
import { mockHttpEvent, mockContext } from '@redwoodjs/testing/api'
|
||||||
|
|
||||||
|
import { handler } from './oauthStart'
|
||||||
|
|
||||||
|
// Improve this test with help from the Redwood Testing Doc:
|
||||||
|
// https://redwoodjs.com/docs/testing#testing-functions
|
||||||
|
|
||||||
|
describe('oauthStart function', () => {
|
||||||
|
it('Should respond with 200', async () => {
|
||||||
|
const httpEvent = mockHttpEvent({
|
||||||
|
queryStringParameters: {
|
||||||
|
id: '42', // Add parameters here
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const response = await handler(httpEvent, mockContext())
|
||||||
|
const { data } = JSON.parse(response.body)
|
||||||
|
|
||||||
|
expect(response.statusCode).toBe(200)
|
||||||
|
expect(data).toBe('oauthStart function')
|
||||||
|
})
|
||||||
|
|
||||||
|
// You can also use scenarios to test your api functions
|
||||||
|
// See guide here: https://redwoodjs.com/docs/testing#scenarios
|
||||||
|
//
|
||||||
|
// scenario('Scenario test', async () => {
|
||||||
|
//
|
||||||
|
// })
|
||||||
|
})
|
41
api/src/functions/oauthStart/oauthStart.ts
Normal file
41
api/src/functions/oauthStart/oauthStart.ts
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import type { APIGatewayEvent, Context } from 'aws-lambda'
|
||||||
|
|
||||||
|
import { logger } from 'src/lib/logger'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The handler function is your code that processes http request events.
|
||||||
|
* You can use return and throw to send a response or error, respectively.
|
||||||
|
*
|
||||||
|
* Important: When deployed, a custom serverless function is an open API endpoint and
|
||||||
|
* is your responsibility to secure appropriately.
|
||||||
|
*
|
||||||
|
* @see {@link https://redwoodjs.com/docs/serverless-functions#security-considerations|Serverless Function Considerations}
|
||||||
|
* in the RedwoodJS documentation for more information.
|
||||||
|
*
|
||||||
|
* @typedef { import('aws-lambda').APIGatewayEvent } APIGatewayEvent
|
||||||
|
* @typedef { import('aws-lambda').Context } Context
|
||||||
|
* @param { APIGatewayEvent } event - an object which contains information from the invoker.
|
||||||
|
* @param { Context } _context - contains information about the invocation,
|
||||||
|
* function, and execution environment.
|
||||||
|
*/
|
||||||
|
export const handler = async (event: APIGatewayEvent, _context: Context) => {
|
||||||
|
logger.info(`${event.httpMethod} ${event.path}: oauth function`)
|
||||||
|
|
||||||
|
switch (event.path) {
|
||||||
|
case '/oauthStart/microsoft':
|
||||||
|
return await callback()
|
||||||
|
default:
|
||||||
|
return {
|
||||||
|
statusCode: 404,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const callback = async () => {
|
||||||
|
return {
|
||||||
|
statusCode: 302,
|
||||||
|
headers: {
|
||||||
|
Location: `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=${process.env.MICROSOFT_OAUTH_CLIENT_ID}&grant_type=authorization_code&response_type=code&redirect_uri=${process.env.MICROSOFT_OAUTH_REDIRECT_URI}&scope=${process.env.MICROSOFT_OAUTH_SCOPES.split(' ').join('+')}`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,9 +10,6 @@
|
||||||
port = 8910
|
port = 8910
|
||||||
apiUrl = "/api" # You can customize graphql and dbauth urls individually too: see https://redwoodjs.com/docs/app-configuration-redwood-toml#api-paths
|
apiUrl = "/api" # You can customize graphql and dbauth urls individually too: see https://redwoodjs.com/docs/app-configuration-redwood-toml#api-paths
|
||||||
includeEnvironmentVariables = [
|
includeEnvironmentVariables = [
|
||||||
"MICROSOFT_OAUTH_CLIENT_ID",
|
|
||||||
"MICROSOFT_OAUTH_SCOPES",
|
|
||||||
"MICROSOFT_OAUTH_REDIRECT_URI",
|
|
||||||
# Add any ENV vars that should be available to the web side to this array
|
# Add any ENV vars that should be available to the web side to this array
|
||||||
# See https://redwoodjs.com/docs/environment-variables#web
|
# See https://redwoodjs.com/docs/environment-variables#web
|
||||||
]
|
]
|
||||||
|
|
|
@ -53,11 +53,7 @@ export default function Hero() {
|
||||||
</p>
|
</p>
|
||||||
<div className="mt-10 flex items-center gap-x-6">
|
<div className="mt-10 flex items-center gap-x-6">
|
||||||
<a
|
<a
|
||||||
href={`https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=${
|
href={`${global.RWJS_API_URL}/oauthStart/microsoft`}
|
||||||
process.env.MICROSOFT_OAUTH_CLIENT_ID
|
|
||||||
}&grant_type=authorization_code&response_type=code&redirect_uri=${
|
|
||||||
process.env.MICROSOFT_OAUTH_REDIRECT_URI
|
|
||||||
}&scope=${process.env.MICROSOFT_OAUTH_SCOPES.split(' ').join('+')}`}
|
|
||||||
className="rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
className="rounded-md bg-indigo-600 px-3.5 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600"
|
||||||
>
|
>
|
||||||
Anmelden
|
Anmelden
|
||||||
|
|
Loading…
Reference in New Issue
Block a user