-
Notifications
You must be signed in to change notification settings - Fork 346
feat: add FPNV #934
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add FPNV #934
Conversation
Summary of ChangesHello @boikoa-gl, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request lays the foundational structure for a new Firebase Phone Number Verification (FPNV) service within the Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new file, fpnv.py, to support the upcoming Firebase Phone Number Verification (FPNV) feature. The file is currently a placeholder with a module docstring. I've suggested a small improvement to the docstring to make its purpose clearer and distinguish it from the existing auth module, which also handles JWT verification.
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new Firebase Phone Number Verification (FPNV) service, including a client for verifying FPNV JWTs. My review focuses on improving security, correctness, and robustness. I've identified a critical security vulnerability in the token validation logic that needs to be addressed. Additionally, there are suggestions to improve exception handling, fix a bug in a validator function, and a reminder to complete the implementation of the FpnvToken class. Most importantly, this new feature lacks any tests, which is a critical omission that must be rectified before merging.
|
/gemini review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new module for Firebase Phone Number Verification (FPNV). The implementation looks solid, with good separation of concerns and error handling. I've identified a couple of minor areas for improvement in the core logic, such as removing unnecessary or redundant code. The main area of concern is in the testing strategy. The tests for token verification are heavily mocked and do not cover the actual cryptographic signature validation, which is a critical part of this feature. I've left a high-severity comment with suggestions on how to add a more robust integration-style test. I've also pointed out some unused variables in the test code.
| assert isinstance(client, fpnv.FpnvClient) | ||
|
|
||
|
|
||
| class TestVerifyToken(TestCommon): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The tests for token verification rely heavily on mocking, including jwt.decode. This means the actual cryptographic signature verification is never tested. For a security-critical feature like this, it's crucial to have at least one integration-style test that performs an end-to-end verification.
Consider adding a test that:
- Generates a real ES256 key pair.
- Creates a JWT and signs it with the private key.
- Mocks the JWKS endpoint to return the corresponding public key.
- Calls
verify_tokenand asserts success, without mockingjwt.decodeor the cryptographic aspects ofPyJWKClient.
Hey there! So you want to contribute to a Firebase SDK?
Before you file this pull request, please read these guidelines:
Discussion
If not, go file an issue about this before creating a pull request to discuss.
Testing
API Changes
us make Firebase APIs better, please propose your change in an issue so that we
can discuss it together.