1 ossicee OP 我也不知道行情。不够我可以加 |
2 jko123 2017-11-06 11:17:43 +08:00 via Android 参考自强学院的 django 教程 |
![]() | 4 liuzhedash 2017-11-06 11:32:31 +08:00 ![]() 我不会 Django,但是这其实不是 100 块钱的事儿,因为 2 点: 1、如果楼主没搞明白 oath 登陆的流程,需要先搞明白;否则即使花钱买了 demo,公众号变化或者其他环境变了也没法用 2、如果楼主明白 oath 登陆的流程,那么需要仔细排查公众号的配置和 demo 是否能匹配,这个排查工作和技术没直接关系,也不适合外人做 个人意见,仅供参考 |
5 lyhapple 2017-11-06 11:33:18 +08:00 才 100 块. |
![]() | 6 tinypig 2017-11-06 11:35:05 +08:00 ![]() |
7 ossicee OP @liuzhedash 好的,谢谢,我再学习一下 |
10 haonan3344 2017-11-06 11:58:37 +08:00 楼主这是自掏腰包干工作呢,真是令人心情复杂啊 |
![]() | 11 Marmot 2017-11-06 14:38:56 +08:00 就是一个重定向到你自定义的链接,然后带一个 code (主要)和一些其他信息过来,然后你拿这个 code 去微信取信息,这一百块自己留着吧,都是菜鸟过来的。 |
![]() | 12 chengxiao 2017-11-06 15:28:52 +08:00 已发邮件 |
![]() | 13 chenxipeng 2017-11-06 15:30:50 +08:00 @liuzhedash 说的很对 |
![]() | 14 SingeeKing PRO 主要就是加一个 Authentication,通过 OpenID 登录 然后使用 http://wechatpy.readthedocs.io/zh_CN/master/oauth.html#module-wechatpy.oauth |
![]() | 15 SingeeKing PRO from .models import WeUser from django.contrib.auth.models import User class WechatOpenidAuth(object): def get_user(self, user_id): try: return User.objects.get(id=user_id) except User.DoesNotExist: return None def authenticate(self, openid=None): weus = WeUser.objects.filter(openID=openid, available=True) for weu in weus: if not weu.user.has_perm('settings.is_admin'): return weu.user return None def login(request): code = request.GET.get('code') next = request.GET.get('state', reverse('index')) we_auth_base = WeChatOAuth(app_id=settings.WECHAT_APP_ID, secret=settings.WECHAT_APP_SECRET, redirect_uri=request.build_absolute_uri(reverse('wechatLogin')), scope='snsapi_base', state=next) if not code: try: authorize_url = we_auth_base.authorize_url except Exception as e: logger.error(e) return redirect(reverse('login') + '?force=1') return redirect(authorize_url) try: r = we_auth_base.fetch_access_token(code) except Exception as e: logger.error(e) return redirect(reverse('login') + '?force=1') if r.get('errcode'): logger.error(r) return redirect(reverse('login') + '?force=1') open_id = r.get('openid') if log_in_with_open_id(request, open_id): messages.success(request, '登录成功') return redirect(next) else: return redirect(reverse('login') + '?force=1') |
16 ossicee OP @SingeeKing 谢谢 |
19 ossicee OP @haonan3344 不是工作,就是想学习一下 |