auth.middleware.ts 761 B

1234567891011121314151617181920212223242526272829303132333435
  1. import { createMiddleware } from 'hono/factory';
  2. /**
  3. * 认证中间件
  4. * 用于验证用户身份并获取用户信息
  5. */
  6. export const authMiddleware = createMiddleware(async (c, next) => {
  7. try {
  8. // 从认证模块获取用户信息
  9. const user = c.get('user');
  10. if (!user) {
  11. return c.json({
  12. message: '未授权访问'
  13. }, 401);
  14. }
  15. // 设置用户OpenID到上下文
  16. const userOpenid = user.openid;
  17. if (!userOpenid) {
  18. return c.json({
  19. message: '用户未绑定微信小程序'
  20. }, 400);
  21. }
  22. c.set('userOpenid', userOpenid);
  23. await next();
  24. } catch (error) {
  25. console.error('认证中间件错误:', error);
  26. return c.json({
  27. message: '认证失败'
  28. }, 401);
  29. }
  30. });