Skip to content

Conversation

@nielchaudhary
Copy link

@nielchaudhary nielchaudhary commented Jul 13, 2025

Bug Report

Platform

  • macOS 14.0, Windows 11

Browser

  • Chrome, Dia, Safari

Current Behavior

The application is experiencing a mixed content error when trying to authenticate users on the production site. The browser blocks authentication requests because:

  1. The production site is served over HTTPS (https://opencut.app/)
  2. The NEXT_PUBLIC_BETTER_AUTH_URL environment variable is set to http://opencut.app (HTTP)
  3. When the better-auth client tries to make requests to http://opencut.app/api/auth/get-session, the browser blocks it with the error:
Mixed Content: The page at 'https://opencut.app/' was loaded over HTTPS, but requested an insecure resource 'http://opencut.app/api/auth/get-session'. This request has been blocked; the content must be served over HTTPS.

This results in authentication features (sign in, sign up, session management) being completely broken in production, while working fine in local development.

Here's a suggested description for the "Expected Behavior" section:

Expected Behavior

Authentication should work seamlessly in production without any mixed content errors. Specifically:

  1. The better-auth client should make HTTPS requests to https://opencut.app/api/auth/* endpoints when running in production
  2. Users should be able to sign in, sign up, and maintain their session without any browser security warnings or blocked requests
  3. The authentication flow should work consistently across both development (HTTP) and production (HTTPS) environments
  4. No mixed content errors should appear in the browser console when accessing authentication features

The auth baseURL should automatically use the appropriate protocol (HTTP for localhost, HTTPS for production) to ensure secure communication while maintaining functionality across all environments.

Recurrence Probability

  • Always

Steps to Reproduce

  1. Visit the production site at https://opencut.app/
  2. Open browser Developer Tools (F12)
  3. Navigate to the Network tab
  4. Refresh the page or trigger any authentication-related action (sign in, sign up, or session check)
  5. Observe the get-session call in the Network tab shows a request to http://opencut.app/api/auth/get-session (HTTP instead of HTTPS)
  6. Check the Console tab to see the mixed content error blocking the request

Expected network request: https://opencut.app/api/auth/get-session
Actual network request: http://opencut.app/api/auth/get-session (blocked by browser)

Screenshots

WhatsApp Image 2025-07-14 at 2 35 13 AM

Testing Notes

  • Tested locally with HTTP (works)
  • Code logic verified for HTTPS environment
  • Cannot test on actual production due to lack of access to production secrets
  • Requires maintainer testing in staging/production environment

Environment

  • Node.js 18+
  • Bun (latest version)
  • Docker (for local database)

Summary by CodeRabbit

  • Chores
    • Updated authentication configuration to recognize both local and production environments.
    • Added "https://opencut.app" as a trusted origin for authentication requests.

@netlify
Copy link

netlify bot commented Jul 13, 2025

👷 Deploy request for appcut pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit b329c42

@vercel
Copy link

vercel bot commented Jul 13, 2025

@nielchaudhary is attempting to deploy a commit to the Maze Winther's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 13, 2025

Walkthrough

The authentication client and server configuration were updated to explicitly handle different environments. The client now sets its base URL based on whether the environment is production or not, and the server adds "https://opencut.app" as a trusted origin in addition to "http://localhost:3000".

Changes

File(s) Change Summary
packages/auth/src/client.ts Updated baseURL configuration to use a conditional based on NODE_ENV for production and development.
packages/auth/src/server.ts Added "https://opencut.app" to the trustedOrigins array.

Poem

A hop and a skip, the URLs align,
With prod and with local, both working just fine.
Trusted origins grow, as the rabbit well knows,
Now "opencut.app" in the server list shows.
🥕✨

✨ Finishing Touches
  • 📝 Generate Docstrings

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/auth/src/client.ts (1)

4-8: LGTM! Consider environment variables for better deployment flexibility.

The conditional logic correctly addresses the mixed content error by using HTTPS in production. However, consider using environment variables instead of hardcoded URLs for better deployment flexibility:

- baseURL:
-   process.env.NODE_ENV === "production"
-     ? "https://opencut.app"
-     : "http://localhost:3000",
+ baseURL: process.env.NEXT_PUBLIC_BETTER_AUTH_URL || 
+   (process.env.NODE_ENV === "production"
+     ? "https://opencut.app"
+     : "http://localhost:3000"),

This approach allows environment variable override while maintaining the hardcoded fallbacks.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b0e9901 and b329c42.

📒 Files selected for processing (2)
  • packages/auth/src/client.ts (1 hunks)
  • packages/auth/src/server.ts (1 hunks)
🔇 Additional comments (1)
packages/auth/src/server.ts (1)

26-26: LGTM! Correct fix for mixed content error.

Adding "https://opencut.app" to trustedOrigins ensures the auth server accepts requests from the production HTTPS client, while maintaining localhost support for development.

@nielchaudhary
Copy link
Author

@mazeincoding the get-session API call is failing on production due to NEXT_PUBLIC_BETTER_AUTH_URL in client.ts.
can you please review this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant