├── .commitlintrc.json ├── .eslintrc.json ├── .github └── workflows │ ├── docs-release.yml │ ├── publish.yml │ └── release.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .release-please-manifest.json ├── .vscode ├── launch.json └── settings.json ├── CHANGELOG.md ├── README.MD ├── apps ├── docs │ ├── .gitignore │ ├── .vitepress │ │ ├── config.mts │ │ └── theme │ │ │ ├── index.ts │ │ │ └── style │ │ │ ├── index.css │ │ │ └── var.css │ ├── api-examples.md │ ├── authing.md │ ├── chinese-third-party-login-flow.md │ ├── example.md │ ├── feishu.md │ ├── gitee.md │ ├── index.md │ ├── markdown-examples.md │ ├── nextjs-fuck.md │ ├── package.json │ ├── quickstart.md │ ├── static │ │ ├── authing.png │ │ ├── authing_config.png │ │ ├── authjs.webp │ │ ├── docs │ │ │ ├── home.png │ │ │ ├── profile.png │ │ │ └── signup.png │ │ ├── main.jpg │ │ ├── nextjs-uaa-login-pc.png │ │ ├── nextjs-uaa-login.png │ │ ├── nextjs-uaa-oauth-login.png │ │ ├── nextjs-uaa-regist.png │ │ └── wechatmp-captcha │ │ │ ├── LoginByWehcatMp.2.png │ │ │ ├── LoginByWehcatMp.3.png │ │ │ ├── LoginByWehcatMp.4.png │ │ │ ├── LoginByWehcatMp.5.png │ │ │ ├── LoginByWehcatMp.6.png │ │ │ └── qrcode.person.png │ ├── wechat-mp-h5.md │ ├── wechatmp-captcha.md │ ├── wechatmp-qrcode.md │ ├── wehcat-web.md │ └── weibo.md └── example │ ├── .env.template │ ├── .eslintrc.json │ ├── .gitignore │ ├── README.md │ ├── components.json │ ├── docs │ ├── home.png │ ├── profile.png │ └── signup.png │ ├── next.config.ts │ ├── package.json │ ├── postcss.config.mjs │ ├── prisma │ ├── schema.prisma │ └── schema.vercel.prisma │ ├── public │ ├── file.svg │ ├── globe.svg │ ├── logo.png │ ├── next.svg │ ├── vercel.svg │ └── window.svg │ ├── src │ ├── app │ │ ├── api │ │ │ └── auth │ │ │ │ ├── [...nextauth] │ │ │ │ └── route.ts │ │ │ │ └── wechatmp │ │ │ │ └── route.ts │ │ ├── auth │ │ │ ├── _components │ │ │ │ ├── SigninForm.tsx │ │ │ │ └── SignupForm.tsx │ │ │ ├── action.ts │ │ │ ├── bind │ │ │ │ └── page.tsx │ │ │ ├── signin │ │ │ │ └── page.tsx │ │ │ └── signup │ │ │ │ └── page.tsx │ │ ├── demo │ │ │ └── page.tsx │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── GeistMonoVF.woff │ │ │ └── GeistVF.woff │ │ ├── globals.css │ │ ├── layout.tsx │ │ ├── page.tsx │ │ └── profile │ │ │ ├── action.ts │ │ │ ├── changePass │ │ │ └── page.tsx │ │ │ ├── layout.tsx │ │ │ └── page.tsx │ ├── auth.config.ts │ ├── auth.ts │ ├── components │ │ ├── OauthButton.tsx │ │ ├── SignInButton.tsx │ │ ├── SignOutButton.tsx │ │ ├── SubmitButton.tsx │ │ └── ui │ │ │ ├── button.tsx │ │ │ ├── input.tsx │ │ │ ├── label.tsx │ │ │ └── tabs.tsx │ ├── lib │ │ ├── action.ts │ │ ├── db.ts │ │ └── utils.ts │ ├── middleware.ts │ └── service │ │ ├── auth.service.ts │ │ └── captcha.service.ts │ ├── tailwind.config.ts │ └── tsconfig.json ├── assets ├── nextjs-uaa-login-pc.png ├── nextjs-uaa-login.png ├── nextjs-uaa-oauth-login.png └── nextjs-uaa-regist.png ├── docs └── wechatmp.md ├── package.json ├── packages ├── authing │ ├── README.md │ ├── package.json │ ├── src │ │ ├── Authing.ts │ │ └── index.ts │ └── tsconfig.json ├── feishu │ ├── README.md │ ├── package.json │ ├── src │ │ ├── Feishu.ts │ │ └── index.ts │ └── tsconfig.json ├── gitee │ ├── README.md │ ├── package.json │ ├── src │ │ ├── Gitee.ts │ │ └── index.ts │ └── tsconfig.json ├── next-auth-oauth │ ├── README.MD │ ├── docs │ │ ├── nextjs-uaa-login.png │ │ └── nextjs-uaa-oauth-login.png │ ├── package.json │ ├── src │ │ ├── core.ts │ │ ├── index.ts │ │ └── type.ts │ └── tsconfig.json ├── nextjs │ ├── README.md │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json ├── qq │ ├── README.md │ ├── package.json │ ├── src │ │ ├── QQ.ts │ │ └── index.ts │ └── tsconfig.json ├── wechat │ ├── README.MD │ ├── package.json │ ├── src │ │ ├── Wechat.ts │ │ └── index.ts │ └── tsconfig.json ├── wechatmp-kit │ ├── README.MD │ ├── package.json │ ├── src │ │ ├── WechatMpApi.ts │ │ ├── WehcatMpAccessTokenCacheManager.ts │ │ ├── index.ts │ │ ├── service │ │ │ ├── MessageService.ts │ │ │ ├── UserService.ts │ │ │ └── sign.ts │ │ ├── type.ts │ │ └── utils.ts │ └── tsconfig.json ├── wechatmp │ ├── README.MD │ ├── package.json │ ├── src │ │ ├── WehcatMpLoginManger.tsx │ │ ├── index.ts │ │ ├── lib │ │ │ └── CaptchaManager.ts │ │ └── pages │ │ │ └── qrcode.ts │ └── tsconfig.json └── weibo │ ├── README.md │ ├── package.json │ ├── src │ ├── Weibo.ts │ └── index.ts │ └── tsconfig.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── release-please-config.json └── tsconfig.json /.commitlintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["@commitlint/config-conventional"] 3 | } 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.eslintrc.json -------------------------------------------------------------------------------- /.github/workflows/docs-release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.github/workflows/docs-release.yml -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.github/workflows/publish.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Ignore artifacts: 2 | build 3 | coverage 4 | node_modules 5 | .cache 6 | .next 7 | dist -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.prettierrc -------------------------------------------------------------------------------- /.release-please-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | ".": "1.7.0" 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/README.MD -------------------------------------------------------------------------------- /apps/docs/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/.gitignore -------------------------------------------------------------------------------- /apps/docs/.vitepress/config.mts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/.vitepress/config.mts -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/.vitepress/theme/index.ts -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/style/index.css: -------------------------------------------------------------------------------- 1 | /* index.css */ 2 | @import './var.css'; 3 | -------------------------------------------------------------------------------- /apps/docs/.vitepress/theme/style/var.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/.vitepress/theme/style/var.css -------------------------------------------------------------------------------- /apps/docs/api-examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/api-examples.md -------------------------------------------------------------------------------- /apps/docs/authing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/authing.md -------------------------------------------------------------------------------- /apps/docs/chinese-third-party-login-flow.md: -------------------------------------------------------------------------------- 1 | # 适合中国宝宝体质的第三方登录流程 2 | 3 | TODO 4 | -------------------------------------------------------------------------------- /apps/docs/example.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/example.md -------------------------------------------------------------------------------- /apps/docs/feishu.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/feishu.md -------------------------------------------------------------------------------- /apps/docs/gitee.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/gitee.md -------------------------------------------------------------------------------- /apps/docs/index.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/index.md -------------------------------------------------------------------------------- /apps/docs/markdown-examples.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/markdown-examples.md -------------------------------------------------------------------------------- /apps/docs/nextjs-fuck.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/nextjs-fuck.md -------------------------------------------------------------------------------- /apps/docs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/package.json -------------------------------------------------------------------------------- /apps/docs/quickstart.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/quickstart.md -------------------------------------------------------------------------------- /apps/docs/static/authing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/authing.png -------------------------------------------------------------------------------- /apps/docs/static/authing_config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/authing_config.png -------------------------------------------------------------------------------- /apps/docs/static/authjs.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/authjs.webp -------------------------------------------------------------------------------- /apps/docs/static/docs/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/docs/home.png -------------------------------------------------------------------------------- /apps/docs/static/docs/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/docs/profile.png -------------------------------------------------------------------------------- /apps/docs/static/docs/signup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/docs/signup.png -------------------------------------------------------------------------------- /apps/docs/static/main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/main.jpg -------------------------------------------------------------------------------- /apps/docs/static/nextjs-uaa-login-pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/nextjs-uaa-login-pc.png -------------------------------------------------------------------------------- /apps/docs/static/nextjs-uaa-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/nextjs-uaa-login.png -------------------------------------------------------------------------------- /apps/docs/static/nextjs-uaa-oauth-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/nextjs-uaa-oauth-login.png -------------------------------------------------------------------------------- /apps/docs/static/nextjs-uaa-regist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/nextjs-uaa-regist.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/LoginByWehcatMp.2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/LoginByWehcatMp.2.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/LoginByWehcatMp.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/LoginByWehcatMp.3.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/LoginByWehcatMp.4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/LoginByWehcatMp.4.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/LoginByWehcatMp.5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/LoginByWehcatMp.5.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/LoginByWehcatMp.6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/LoginByWehcatMp.6.png -------------------------------------------------------------------------------- /apps/docs/static/wechatmp-captcha/qrcode.person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/static/wechatmp-captcha/qrcode.person.png -------------------------------------------------------------------------------- /apps/docs/wechat-mp-h5.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/wechat-mp-h5.md -------------------------------------------------------------------------------- /apps/docs/wechatmp-captcha.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/wechatmp-captcha.md -------------------------------------------------------------------------------- /apps/docs/wechatmp-qrcode.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/wechatmp-qrcode.md -------------------------------------------------------------------------------- /apps/docs/wehcat-web.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/wehcat-web.md -------------------------------------------------------------------------------- /apps/docs/weibo.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/docs/weibo.md -------------------------------------------------------------------------------- /apps/example/.env.template: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/.env.template -------------------------------------------------------------------------------- /apps/example/.eslintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/.eslintrc.json -------------------------------------------------------------------------------- /apps/example/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/.gitignore -------------------------------------------------------------------------------- /apps/example/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/README.md -------------------------------------------------------------------------------- /apps/example/components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/components.json -------------------------------------------------------------------------------- /apps/example/docs/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/docs/home.png -------------------------------------------------------------------------------- /apps/example/docs/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/docs/profile.png -------------------------------------------------------------------------------- /apps/example/docs/signup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/docs/signup.png -------------------------------------------------------------------------------- /apps/example/next.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/next.config.ts -------------------------------------------------------------------------------- /apps/example/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/package.json -------------------------------------------------------------------------------- /apps/example/postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/postcss.config.mjs -------------------------------------------------------------------------------- /apps/example/prisma/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/prisma/schema.prisma -------------------------------------------------------------------------------- /apps/example/prisma/schema.vercel.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/prisma/schema.vercel.prisma -------------------------------------------------------------------------------- /apps/example/public/file.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/file.svg -------------------------------------------------------------------------------- /apps/example/public/globe.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/globe.svg -------------------------------------------------------------------------------- /apps/example/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/logo.png -------------------------------------------------------------------------------- /apps/example/public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/next.svg -------------------------------------------------------------------------------- /apps/example/public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/vercel.svg -------------------------------------------------------------------------------- /apps/example/public/window.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/public/window.svg -------------------------------------------------------------------------------- /apps/example/src/app/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/api/auth/[...nextauth]/route.ts -------------------------------------------------------------------------------- /apps/example/src/app/api/auth/wechatmp/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/api/auth/wechatmp/route.ts -------------------------------------------------------------------------------- /apps/example/src/app/auth/_components/SigninForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/_components/SigninForm.tsx -------------------------------------------------------------------------------- /apps/example/src/app/auth/_components/SignupForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/_components/SignupForm.tsx -------------------------------------------------------------------------------- /apps/example/src/app/auth/action.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/action.ts -------------------------------------------------------------------------------- /apps/example/src/app/auth/bind/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/bind/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/auth/signin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/signin/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/auth/signup/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/auth/signup/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/demo/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/demo/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/favicon.ico -------------------------------------------------------------------------------- /apps/example/src/app/fonts/GeistMonoVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/fonts/GeistMonoVF.woff -------------------------------------------------------------------------------- /apps/example/src/app/fonts/GeistVF.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/fonts/GeistVF.woff -------------------------------------------------------------------------------- /apps/example/src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/globals.css -------------------------------------------------------------------------------- /apps/example/src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/layout.tsx -------------------------------------------------------------------------------- /apps/example/src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/profile/action.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/profile/action.ts -------------------------------------------------------------------------------- /apps/example/src/app/profile/changePass/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/profile/changePass/page.tsx -------------------------------------------------------------------------------- /apps/example/src/app/profile/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/profile/layout.tsx -------------------------------------------------------------------------------- /apps/example/src/app/profile/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/app/profile/page.tsx -------------------------------------------------------------------------------- /apps/example/src/auth.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/auth.config.ts -------------------------------------------------------------------------------- /apps/example/src/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/auth.ts -------------------------------------------------------------------------------- /apps/example/src/components/OauthButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/OauthButton.tsx -------------------------------------------------------------------------------- /apps/example/src/components/SignInButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/SignInButton.tsx -------------------------------------------------------------------------------- /apps/example/src/components/SignOutButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/SignOutButton.tsx -------------------------------------------------------------------------------- /apps/example/src/components/SubmitButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/SubmitButton.tsx -------------------------------------------------------------------------------- /apps/example/src/components/ui/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/ui/button.tsx -------------------------------------------------------------------------------- /apps/example/src/components/ui/input.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/ui/input.tsx -------------------------------------------------------------------------------- /apps/example/src/components/ui/label.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/ui/label.tsx -------------------------------------------------------------------------------- /apps/example/src/components/ui/tabs.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/components/ui/tabs.tsx -------------------------------------------------------------------------------- /apps/example/src/lib/action.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/lib/action.ts -------------------------------------------------------------------------------- /apps/example/src/lib/db.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/lib/db.ts -------------------------------------------------------------------------------- /apps/example/src/lib/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/lib/utils.ts -------------------------------------------------------------------------------- /apps/example/src/middleware.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/middleware.ts -------------------------------------------------------------------------------- /apps/example/src/service/auth.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/service/auth.service.ts -------------------------------------------------------------------------------- /apps/example/src/service/captcha.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/src/service/captcha.service.ts -------------------------------------------------------------------------------- /apps/example/tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/tailwind.config.ts -------------------------------------------------------------------------------- /apps/example/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/apps/example/tsconfig.json -------------------------------------------------------------------------------- /assets/nextjs-uaa-login-pc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/assets/nextjs-uaa-login-pc.png -------------------------------------------------------------------------------- /assets/nextjs-uaa-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/assets/nextjs-uaa-login.png -------------------------------------------------------------------------------- /assets/nextjs-uaa-oauth-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/assets/nextjs-uaa-oauth-login.png -------------------------------------------------------------------------------- /assets/nextjs-uaa-regist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/assets/nextjs-uaa-regist.png -------------------------------------------------------------------------------- /docs/wechatmp.md: -------------------------------------------------------------------------------- 1 | # Nextjs面向国内编程:快速集成`微信公众号扫码/验证码`登录 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/package.json -------------------------------------------------------------------------------- /packages/authing/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/authing/README.md -------------------------------------------------------------------------------- /packages/authing/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/authing/package.json -------------------------------------------------------------------------------- /packages/authing/src/Authing.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/authing/src/Authing.ts -------------------------------------------------------------------------------- /packages/authing/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Authing' 2 | -------------------------------------------------------------------------------- /packages/authing/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/authing/tsconfig.json -------------------------------------------------------------------------------- /packages/feishu/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/feishu/README.md -------------------------------------------------------------------------------- /packages/feishu/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/feishu/package.json -------------------------------------------------------------------------------- /packages/feishu/src/Feishu.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/feishu/src/Feishu.ts -------------------------------------------------------------------------------- /packages/feishu/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Feishu' 2 | -------------------------------------------------------------------------------- /packages/feishu/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/feishu/tsconfig.json -------------------------------------------------------------------------------- /packages/gitee/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/gitee/README.md -------------------------------------------------------------------------------- /packages/gitee/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/gitee/package.json -------------------------------------------------------------------------------- /packages/gitee/src/Gitee.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/gitee/src/Gitee.ts -------------------------------------------------------------------------------- /packages/gitee/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Gitee' 2 | -------------------------------------------------------------------------------- /packages/gitee/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/gitee/tsconfig.json -------------------------------------------------------------------------------- /packages/next-auth-oauth/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/README.MD -------------------------------------------------------------------------------- /packages/next-auth-oauth/docs/nextjs-uaa-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/docs/nextjs-uaa-login.png -------------------------------------------------------------------------------- /packages/next-auth-oauth/docs/nextjs-uaa-oauth-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/docs/nextjs-uaa-oauth-login.png -------------------------------------------------------------------------------- /packages/next-auth-oauth/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/package.json -------------------------------------------------------------------------------- /packages/next-auth-oauth/src/core.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/src/core.ts -------------------------------------------------------------------------------- /packages/next-auth-oauth/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/src/index.ts -------------------------------------------------------------------------------- /packages/next-auth-oauth/src/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/src/type.ts -------------------------------------------------------------------------------- /packages/next-auth-oauth/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/next-auth-oauth/tsconfig.json -------------------------------------------------------------------------------- /packages/nextjs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/nextjs/README.md -------------------------------------------------------------------------------- /packages/nextjs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/nextjs/package.json -------------------------------------------------------------------------------- /packages/nextjs/src/index.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/nextjs/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/nextjs/tsconfig.json -------------------------------------------------------------------------------- /packages/qq/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/qq/README.md -------------------------------------------------------------------------------- /packages/qq/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/qq/package.json -------------------------------------------------------------------------------- /packages/qq/src/QQ.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/qq/src/QQ.ts -------------------------------------------------------------------------------- /packages/qq/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './QQ' 2 | -------------------------------------------------------------------------------- /packages/qq/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/qq/tsconfig.json -------------------------------------------------------------------------------- /packages/wechat/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechat/README.MD -------------------------------------------------------------------------------- /packages/wechat/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechat/package.json -------------------------------------------------------------------------------- /packages/wechat/src/Wechat.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechat/src/Wechat.ts -------------------------------------------------------------------------------- /packages/wechat/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechat/src/index.ts -------------------------------------------------------------------------------- /packages/wechat/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechat/tsconfig.json -------------------------------------------------------------------------------- /packages/wechatmp-kit/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/README.MD -------------------------------------------------------------------------------- /packages/wechatmp-kit/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/package.json -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/WechatMpApi.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/WechatMpApi.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/WehcatMpAccessTokenCacheManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/WehcatMpAccessTokenCacheManager.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/index.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/service/MessageService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/service/MessageService.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/service/UserService.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/service/UserService.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/service/sign.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/service/sign.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/type.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/src/utils.ts -------------------------------------------------------------------------------- /packages/wechatmp-kit/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp-kit/tsconfig.json -------------------------------------------------------------------------------- /packages/wechatmp/README.MD: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/README.MD -------------------------------------------------------------------------------- /packages/wechatmp/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/package.json -------------------------------------------------------------------------------- /packages/wechatmp/src/WehcatMpLoginManger.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/src/WehcatMpLoginManger.tsx -------------------------------------------------------------------------------- /packages/wechatmp/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/src/index.ts -------------------------------------------------------------------------------- /packages/wechatmp/src/lib/CaptchaManager.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/src/lib/CaptchaManager.ts -------------------------------------------------------------------------------- /packages/wechatmp/src/pages/qrcode.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/src/pages/qrcode.ts -------------------------------------------------------------------------------- /packages/wechatmp/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/wechatmp/tsconfig.json -------------------------------------------------------------------------------- /packages/weibo/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/weibo/README.md -------------------------------------------------------------------------------- /packages/weibo/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/weibo/package.json -------------------------------------------------------------------------------- /packages/weibo/src/Weibo.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/weibo/src/Weibo.ts -------------------------------------------------------------------------------- /packages/weibo/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './Weibo' 2 | -------------------------------------------------------------------------------- /packages/weibo/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/packages/weibo/tsconfig.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/pnpm-workspace.yaml -------------------------------------------------------------------------------- /release-please-config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/release-please-config.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liuhuapiaoyuan/next-auth-oauth/HEAD/tsconfig.json --------------------------------------------------------------------------------