api.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:cloud-memory 作者: onejgordon 项目源码 文件源码
def action(self, action, d):
        base = "http://localhost:8080" if tools.on_dev_server() else BASE
        if action == 'login':
            scope = "email profile"
            flow = User.get_auth_flow(scope=scope)
            flow.params['access_type'] = 'offline'
            flow.params['include_granted_scopes'] = 'true'
            auth_uri = flow.step1_get_authorize_url(state=scope)
            self.json_out({'auth_uri': auth_uri}, success=True, debug=True)

        elif action == 'oauth2callback':

            error = self.request.get('error')
            code = self.request.get('code')
            scope = self.request.get('scope')
            state_scopes = self.request.get('state')

            if code:
                CLIENT_SECRET_FILE = os.path.join(os.path.dirname(__file__), 'client_secrets.json')

                credentials = client.credentials_from_clientsecrets_and_code(
                    CLIENT_SECRET_FILE,
                    scope.split(' '),
                    code,
                    redirect_uri=base + "/api/auth/oauth2callback")
                user = self.user
                if not user:
                    email = credentials.id_token['email']
                    user = User.GetByEmail(email)
                    if not user:
                        # Create account
                        user = User.Create(email=email)

                if user:
                    user.save_credentials(credentials)
                    user.put()
                    self.session['user'] = user
            elif error:
                logging.error(error)


            self.redirect("/app/settings")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号