我有一个 NestJS 后端,它公开以下 API:
@Post('sign-in-with-google-account')
async signInWithGoogleAccount(
@Body body: { idToken: string },
@Res({ passthrough: true }) response: Response
) {
const user = await getUserFromGoogleIdToken(body.idToken)
const tokens = await generateAccessAndRefreshTokensForUser(user)
response.cookie('refreshToken', tokens.refreshToken, {
httpOnly: true,
expires: new Date(tokenExpirationDate),
secure: true,
sameSite: 'none'
})
return { accessToken: tokens.accessToken }
}
Run Code Online (Sandbox Code Playgroud)
它从 google oauth 接收 id 令牌,在数据库中查找用户并签署 JWT 访问令牌和刷新令牌。刷新令牌存储为httpOnlycookie,并返回访问令牌。
现在,在我配置的 next.js 应用程序中,next-auth我有以下内容:
import GoogleProvider from "next-auth/providers/google";
...
providers: [
GoogleProvider({
clientId: process.env.GOOGLE_CLIENT_ID,
clientSecret: process.env.GOOGLE_CLIENT_SECRET
})
]
... …Run Code Online (Sandbox Code Playgroud) 身份验证服务器 Api 是问题
我正在尝试在 2 个不同的服务器中在 laravel 和 Angular App 中创建一个 API。我没有得到一篇可以逐步解释我的好文章。
我面临的问题是我不确定如何处理 client_secret 我确定我需要在我的 Angular 应用程序上进行身份验证和登录时验证这一点(在服务器 laravel 上验证)
我是使用重定向 url 将其设置为 laravel 路由(因为谷歌在成功登录时使用访问令牌重定向从 angular 到我指向的任何 url)还是在我将其置于 angular 范围后从 angular 进行调用即使用rest调用将id令牌发送到laravel路由
我正在制作 laravel api,因为将来我可能有一个移动应用程序,我可以重用这个 api
我知道我可能进错了论坛。但这是我所知道的反应最快的论坛。
angular ×1
api ×1
azure ×1
google-api ×1
google-oauth ×1
javascript ×1
jwt ×1
laravel ×1
nestjs ×1
next-auth ×1
next.js ×1
postman ×1
rest ×1