<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>微信小程序开发 on 洛克里亚的五度 博客</title>
    <link>https://lv-blog.pages.dev/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91/</link>
    <description>Recent content in 微信小程序开发 on 洛克里亚的五度 博客</description>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Wed, 23 Apr 2025 14:02:30 +0800</lastBuildDate>
    <atom:link href="https://lv-blog.pages.dev/tags/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>微信小程序开发受苦指南</title>
      <link>https://lv-blog.pages.dev/posts/programming/wechatapp-development-notes/</link>
      <pubDate>Wed, 23 Apr 2025 14:02:30 +0800</pubDate>
      <guid>https://lv-blog.pages.dev/posts/programming/wechatapp-development-notes/</guid>
      <description>&lt;h2 id=&#34;微信小程序和后端用户认证交互流程&#34;&gt;微信小程序和后端用户认证交互流程&lt;/h2&gt;
&lt;p&gt;微信小程序登录的核心流程：小程序拿临时凭证 &lt;code&gt;code&lt;/code&gt; → 后端用 &lt;code&gt;code&lt;/code&gt; 换 &lt;code&gt;openid&lt;/code&gt; → 后端发自己的 JWT 给小程序。下面是整体流程图。&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;sequenceDiagram
    participant MP as 微信小程序
    participant WX as 微信服务器
    participant GW as gateway
    participant Auth as auth模块
    participant User as user-service
    participant DB as lia_user库

    MP-&gt;&gt;WX: wx.login() 获取 code
    WX--&gt;&gt;MP: 返回临时 code
    MP-&gt;&gt;GW: POST /auth/wx-login {code}
    GW-&gt;&gt;Auth: 转发请求
    Auth-&gt;&gt;WX: code2session(code)
    WX--&gt;&gt;Auth: 返回 openid + session_key
    Auth-&gt;&gt;User: OpenFeign 查/建用户
    User-&gt;&gt;DB: 按 openid 查询
    DB--&gt;&gt;User: 用户记录(或空)
    User--&gt;&gt;Auth: 返回 userId
    Auth-&gt;&gt;Auth: 生成 JWT
    Auth--&gt;&gt;MP: 返回 token + 用户信息
    MP-&gt;&gt;MP: 存入 Storage
&lt;/pre&gt;
&lt;h3 id=&#34;关键点拆解&#34;&gt;关键点拆解&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;1. 小程序端拿 code（前端）&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
