@coverbase/nuxt-auth
Advanced tools
| declare const _default: any; | ||
| export default _default; |
| import { | ||
| authHooks, | ||
| defineEventHandler, | ||
| getQuery, | ||
| getRequestURL, | ||
| sendRedirect, | ||
| useRuntimeConfig | ||
| } from "#imports"; | ||
| import { withQuery } from "ufo"; | ||
| export default defineEventHandler(async (event) => { | ||
| const config = useRuntimeConfig(event); | ||
| const { code } = getQuery(event); | ||
| const { host, protocol } = getRequestURL(event); | ||
| const redirectUrl = `${protocol}//${host}/auth/google`; | ||
| if (code) { | ||
| const token = await $fetch("https://oauth2.googleapis.com/token", { | ||
| method: "POST", | ||
| body: { | ||
| grant_type: "authorization_code", | ||
| client_id: config.auth.provider.google.clientKey, | ||
| client_secret: config.auth.provider.google.clientSecret, | ||
| redirect_uri: redirectUrl, | ||
| code | ||
| } | ||
| }); | ||
| const userInfo = await $fetch( | ||
| "https://www.googleapis.com/oauth2/v3/userinfo", | ||
| { | ||
| method: "GET", | ||
| headers: { | ||
| Authorization: `Bearer ${token.access_token}` | ||
| } | ||
| } | ||
| ); | ||
| await authHooks.callHookParallel("session:create", event, userInfo); | ||
| return sendRedirect(event, "/"); | ||
| } | ||
| return sendRedirect( | ||
| event, | ||
| withQuery("https://accounts.google.com/o/oauth2/v2/auth", { | ||
| response_type: "code", | ||
| client_id: config.auth.provider.google.clientKey, | ||
| redirect_uri: redirectUrl, | ||
| scope: "email profile" | ||
| }) | ||
| ); | ||
| }); |
+1
-1
| { | ||
| "name": "@coverbase/nuxt-auth", | ||
| "version": "0.0.4", | ||
| "version": "0.0.5", | ||
| "configKey": "auth", | ||
@@ -5,0 +5,0 @@ "builder": { |
+1
-1
@@ -5,3 +5,3 @@ import { defineNuxtModule, createResolver, addServerScanDir, addImportsDir } from '@nuxt/kit'; | ||
| const name = "@coverbase/nuxt-auth"; | ||
| const version = "0.0.4"; | ||
| const version = "0.0.5"; | ||
@@ -8,0 +8,0 @@ const module = defineNuxtModule({ |
| import { EventHandlerRequest, H3Event } from "h3"; | ||
| import { UserInfoResponse } from "../../types"; | ||
| export declare const authHooks: import("hookable").Hookable<{ | ||
| "session:create": (event: H3Event<EventHandlerRequest>, context: UserInfoResponse) => Promise<void>; | ||
| "session:beforeDelete": <T>(event: H3Event<EventHandlerRequest>, session: T) => Promise<void>; | ||
| "session:afterDelete": <T_1>(event: H3Event<EventHandlerRequest>, session: T_1) => Promise<void>; | ||
| }, import("hookable").HookKeys<{ | ||
| "session:create": (event: H3Event<EventHandlerRequest>, context: UserInfoResponse) => Promise<void>; | ||
| "session:beforeDelete": <T>(event: H3Event<EventHandlerRequest>, session: T) => Promise<void>; | ||
@@ -7,0 +10,0 @@ "session:afterDelete": <T_1>(event: H3Event<EventHandlerRequest>, session: T_1) => Promise<void>; |
@@ -1,4 +0,15 @@ | ||
| import type { EventHandlerRequest, H3Event } from "h3"; | ||
| export interface ProviderOptions<TContext> { | ||
| onSuccess: <T>(event: H3Event<EventHandlerRequest>, context: TContext) => T | Promise<T>; | ||
| export interface TokenResponse { | ||
| access_token: string; | ||
| token_type: string; | ||
| expires_in: string; | ||
| refresh_token?: string; | ||
| id_token?: string; | ||
| } | ||
| export interface UserInfoResponse { | ||
| sub: string; | ||
| name: string; | ||
| give_name: string; | ||
| family_name: string; | ||
| email: string; | ||
| picture: string; | ||
| } |
+1
-1
| { | ||
| "name": "@coverbase/nuxt-auth", | ||
| "version": "0.0.4", | ||
| "version": "0.0.5", | ||
| "license": "MIT", | ||
@@ -5,0 +5,0 @@ "type": "module", |
| import { ProviderOptions } from "../../types"; | ||
| export interface GoogleTokenResponse { | ||
| access_token: string; | ||
| token_type: string; | ||
| expires_in: string; | ||
| refresh_token?: string; | ||
| id_token?: string; | ||
| } | ||
| export interface GoogleUserInfoResponse { | ||
| sub: string; | ||
| name: string; | ||
| give_name: string; | ||
| family_name: string; | ||
| email: string; | ||
| picture: string; | ||
| } | ||
| export declare const defineGoogleProvider: ({ onSuccess }: ProviderOptions<GoogleUserInfoResponse>) => any; |
| import { eventHandler, getQuery, getRequestURL, sendRedirect, useRuntimeConfig } from "#imports"; | ||
| import { withQuery } from "ufo"; | ||
| export const defineGoogleProvider = ({ onSuccess }) => { | ||
| return eventHandler(async (event) => { | ||
| const config = useRuntimeConfig(event); | ||
| const { code } = getQuery(event); | ||
| const { host, protocol } = getRequestURL(event); | ||
| const redirectUrl = `${protocol}//${host}/auth/google`; | ||
| if (code) { | ||
| const token = await $fetch("https://oauth2.googleapis.com/token", { | ||
| method: "POST", | ||
| body: { | ||
| grant_type: "authorization_code", | ||
| client_id: config.auth.provider.google.clientKey, | ||
| client_secret: config.auth.provider.google.clientSecret, | ||
| redirect_uri: redirectUrl, | ||
| code | ||
| } | ||
| }); | ||
| const userInfo = await $fetch( | ||
| "https://www.googleapis.com/oauth2/v3/userinfo", | ||
| { | ||
| method: "GET", | ||
| headers: { | ||
| Authorization: `Bearer ${token.access_token}` | ||
| } | ||
| } | ||
| ); | ||
| return onSuccess(event, userInfo); | ||
| } | ||
| return sendRedirect( | ||
| event, | ||
| withQuery("https://accounts.google.com/o/oauth2/v2/auth", { | ||
| response_type: "code", | ||
| client_id: config.auth.provider.google.clientKey, | ||
| redirect_uri: redirectUrl, | ||
| scope: "email profile" | ||
| }) | ||
| ); | ||
| }); | ||
| }; |
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
Unpublished package
Supply chain riskPackage version was not found on the registry. It may exist on a different registry and need to be configured to pull from that registry.
235
2.17%8977
-0.8%