我正尝试通过API端点(第一次)构建Facebook登录,主要是使用NestJs框架和护照库的移动应用程序。
我已经跟踪了这篇文章这里,但我不知道下一步是什么?!同样的,当访问端点时,只是说“不授权”!
我需要注册一个用户(如果不存在),如果它存在,我需要登录()
到目前为止我的代码( FB策略)
import { Injectable } from "@nestjs/common";
import { use } from "passport";
import { UsersService } from "../routes/users/users.service";
import PassportFacebookToken = require("passport-facebook-token");
@Injectable()
export class FacebookStrategy {
constructor(
private readonly userService: UsersService,
) {
this.init();
}
init() {
use(
new PassportFacebookToken(
{
clientID: '',
clientSecret: '',
fbGraphVersion: 'v3.0',
},
async (
accessToken: string,
refreshToken: string,
profile: any,
done: any,
) => {
const user = await this.userService.create(
{
username: profile.displayName,
email: profile.emails[0].value,
picture: profile.photos[0].value,
},
);
return done(null, user);
},
),
);
}
}
服务:
async create(
user: Partial<UserDTO>
): Promise<UserDTO> {
let userExist: UserDTO = await this.userRepository.findOne({ where: { username: user.username } });
if (userExist) {
throw new HttpException('User already exists', HttpStatus.BAD_REQUEST);
}
let createdUser = this.userRepository.create(user);
return (await this.userRepository.save(createdUser));
}
控制器
@UseGuards(AuthGuard('facebook-token'))
@Get('facebook')
async getTokenAfterFacebookSignIn(
@Req() req: any
) {
// return this
}
https://stackoverflow.com/questions/61062780
复制相似问题