<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Next.js on Kevin&#39;s Blog</title>
    <link>https://bloglee.pages.dev/tags/next.js/</link>
    <description>Recent content in Next.js on Kevin&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Mon, 12 Jan 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://bloglee.pages.dev/tags/next.js/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>在 Cloudflare Workers 上完美使用 Next.js Image 组件</title>
      <link>https://bloglee.pages.dev/post/cloudflare-images/</link>
      <pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/cloudflare-images/</guid>
      <description>&lt;p&gt;在使用 &lt;code&gt;opennextjs-cloudflare&lt;/code&gt; 部署 Next.js 时，图片优化是一个大坑。&lt;/p&gt;&#xA;&lt;p&gt;最初我尝试了官方的 Binding 模式，但遇到了格式无法自动转换（一直是 JPEG）和缓存配置麻烦的问题。经过摸索，最终切换到了 &lt;strong&gt;Custom Loader&lt;/strong&gt; 模式。这个方案直接利用 Cloudflare 原生的图片转换服务（&lt;code&gt;/cdn-cgi/image/&lt;/code&gt;），不仅无需消耗 Worker 资源，还能强制输出 WebP/AVIF 格式，速度飞快。&lt;/p&gt;</description>
    </item>
    <item>
      <title>next-auth 介绍</title>
      <link>https://bloglee.pages.dev/post/into-to-next-auth/</link>
      <pubDate>Tue, 19 Aug 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/into-to-next-auth/</guid>
      <description>&lt;h2 id=&#34;oauth-授权&#34;&gt;OAuth 授权&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用户在 Google 页面同意授权（选择账号、允许权限）&lt;/li&gt;&#xA;&lt;li&gt;Google 返回授权码（authorization code）到 NextAuth 配置的回调 URL（默认是 /api/auth/callback/google）。&lt;/li&gt;&#xA;&lt;li&gt;NextAuth 收到 Google 返回的授权码&lt;/li&gt;&#xA;&lt;li&gt;使用 Google 的 client_id 和 client_secret 去请求访问 token 和用户信息&lt;/li&gt;&#xA;&lt;li&gt;获取用户信息（如 email、name、avatar）&lt;/li&gt;&#xA;&lt;li&gt;在 authorize 或 callbacks.signIn 中，你可以：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;在数据库查找或创建用户。&lt;/li&gt;&#xA;&lt;li&gt;设置用户的权限或角色信息。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;NextAuth 生成一个 JWT 或 session cookie（取决于配置 session.strategy）。&lt;/li&gt;&#xA;&lt;li&gt;用户的会话信息会存储在 cookie 中，并包含一些用户信息或权限.&lt;/li&gt;&#xA;&lt;li&gt;调用 signOut()。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;NextAuth 清空 cookie，会话失效。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;credentials-provider&#34;&gt;Credentials Provider&lt;/h2&gt;&#xA;&lt;h2 id=&#34;email-provider&#34;&gt;Email Provider&lt;/h2&gt;&#xA;&lt;h2 id=&#34;问题&#34;&gt;问题&lt;/h2&gt;&#xA;&lt;p&gt;JWT vs token&lt;/p&gt;</description>
    </item>
    <item>
      <title>Next.js 基础知识</title>
      <link>https://bloglee.pages.dev/post/basics-of-nextjs/</link>
      <pubDate>Sun, 02 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://bloglee.pages.dev/post/basics-of-nextjs/</guid>
      <description>&lt;h2 id=&#34;use-client-指令&#34;&gt;use client 指令&lt;/h2&gt;&#xA;&lt;p&gt;可以，简单总结就是：&lt;/p&gt;&#xA;&lt;h3 id=&#34;use-client-是什么&#34;&gt;&lt;code&gt;use client&lt;/code&gt; 是什么&lt;/h3&gt;&#xA;&lt;p&gt;它是 Next.js 里的一个标记，表示：&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;这个组件要在浏览器端运行。&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;写了它之后，这个组件就变成 &lt;strong&gt;Client Component&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;加了之后会怎样&#34;&gt;加了之后会怎样&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1-可以使用浏览器相关能力&#34;&gt;1. 可以使用浏览器相关能力&lt;/h4&gt;&#xA;&lt;p&gt;比如：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
