小编mus*_*fau的帖子

如何在 nestjs facebook 策略回调 url 中传递动态参数

我如何在 facebook 登录回调 url 中传递一些动态参数?

我有不同类型的用户(通过“类型”参数区分)使用 Facebook 登录进行注册。我使用passport-facebook创建了一个facebook身份验证策略,效果很好。

但是,在身份验证后,当调用回调 url 时,我需要知道请求注册的用户类型。

我猜我可以在定义回调 url 时传递一个参数

像这样的东西

http://localhost:3000/auth/facebook/callback/type1 http://localhost:3000/auth/facebook/callback/type2

如何将动态值传递到 FacebookStrategy 中?

或者实现这一目标的可能解决方法是什么?

// 护照策略.ts

@Injectable()
export class FacebookStrategy extends PassportStrategy(Strategy) {
    constructor() {
        super({
            clientID: 'MYID',
            clientSecret: 'MYSCRET',
            callbackURL: "http://localhost:3000/auth/facebook/callback",
            profileFields: ['id', 'displayName', 'emails', 'photos']
        });
    }

    async validate(accessToken: any, refreshToken: any, profile: any) {
        return {
            name: profile.displayName,
            email: profile.emails[0].value,
            provider: "facebook",
            providerId: profile.id,
            photo: profile.photos[0].value
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

// 授权控制器

@Controller('auth')
export class AuthController {
    constructor(
        @Inject(forwardRef(() => AuthService)) …
Run Code Online (Sandbox Code Playgroud)

facebook passport-facebook nestjs

7
推荐指数
1
解决办法
1605
查看次数

标签 统计

facebook ×1

nestjs ×1

passport-facebook ×1