首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Apollo服务器进行社交登录?

如何使用Apollo服务器进行社交登录?
EN

Stack Overflow用户
提问于 2021-06-01 00:03:55
回答 1查看 136关注 0票数 0

这一次,我想对后端使用不同的技术。因此,我在graphql API中使用了prismaapollo-servertypegraphqlyou can find more info here

安装完这些包后,我想用Google进行一个社交登录。经过一些研究,我发现对于节点js后端,推荐使用passport js & passport-google-oauth2。然而,这些教程中几乎有90%使用express js,据我所知,你不能在express -graphql中使用代码优先的方法(它使用sdl-first方法,如果可以的话,我想尝试使用typegraphql ),那么有没有一种方法可以在不使用express的情况下实现社交登录到我的应用程序接口?

index.ts

代码语言:javascript
复制
import 'reflect-metadata'
import * as tq from 'type-graphql'
import { ApolloServer } from 'apollo-server'
import { ProfileResolver, UserResolver } from './resolvers'

const PORT = process.env.PORT || 5000

const app = async () => {
    const schema = await tq.buildSchema({resolvers: [UserResolver, ProfileResolver]})

    const server = new ApolloServer({ 
        schema,
        context: {

        }
    })

    const { url } = await server.listen(PORT)
    console.log(`Server is running at ${url}`)
}

app()

如果需要,我可以共享其他文件。

附言:我是阿波罗和打字机的新手。我遵循了他们的文档,但所有关于身份验证的文章都是JWT。他们中没有人提到社交登录。

EN

回答 1

Stack Overflow用户

发布于 2021-06-01 04:15:46

老实说,我不太熟悉apollo-servertypegraphql,甚至不太熟悉构建GraphQL端点。但我知道一些基本概念,我会尽我所能给你一个找到解决方案的起点。

社交登录通常使用OAuth2协议,并且倾向于使用JWTs作为身份验证令牌。这就是为什么医生提到JWTs。

GraphQL不需要知道任何关于操作的信息,只需要知道预期的数据、应该返回的数据以及为该操作调用的实际服务。我喜欢把GraphQL看作是访问服务的通用接口。它不应该知道任何关于身份验证、OAuth2等的信息。因此,您构建的任何GraphQL端点都可以调用另一个服务来处理身份验证,并返回您期望用于身份验证的数据: JWT、错误等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67777080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档