AspNet Core + Vue.js:用户在Controller中消失

时间:2017-07-23 17:03:24

标签: authentication asp.net-core oauth-2.0 vue.js

我创建了一个新的AspNet .Core + Vue.js应用程序(使用this template)。

我使用OAuth2&包含在AspNet核心中的身份验证系统(通过Patreon),当我禁用Vue应用程序(删除boot.ts的内容)时,一切正常,我的用户是正确的,即使在控制器中也是如此。

但是一旦Vue.js被激活,就会出现黑魔法:

  • 原始登录正常工作
  • 用户仅在RAZOR PAGES中正确
  • 用户未正确使用我的控制器(它是匿名用户)。

我的剃刀页面中使用的代码,它始终有效:

user_answer!=int(user_answer)

我的控制器:

@if (User?.Identity?.IsAuthenticated ?? false)
{
    <div id='app-root'>Loading...</div>
    <a class="btn btn-lg btn-danger" href="/logout">Sign out</a>
}
else
{
    <h1>Welcome, anonymous</h1>
    <a class="btn btn-lg btn-success" href="/login">Sign in</a>
}

我的Vue.js路线:

public IEnumerable<WeatherForecast> WeatherForecasts() {
    [...]
    var data = User; //User without data when the Vue app is activated
    [...]
}

然后,完成我的Startup.cs示例:

const routes = [
{ path: '/', component: require('./components/home/home.vue.html') },
{ path: '/counter', component: require('./components/counter/counter.vue.html') },
{ path: '/fetchdata', component: require('./components/fetchdata/fetchdata.vue.html') }
];

我不习惯处理身份验证,而且我是Vue.js的新手,所以我当然在某个地方犯了错误。

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

我的不好,反应很明显:在vue应用程序中,我使用简单的获取方法调用我的api ..... 而不发送Asp身份验证cookie

所以现在看起来像这样:

fetch('/api[...]', { credentials: "same-origin"})

主题已关闭。