我正在尝试使用存储经过身份验证的用户详细信息的应用程序范围的服务(UserService).我已经设置了一些路由,但发现UserService是按路由实例化的.我希望他们共享相同的UserService.
我创建了一个包含TestService作为提供程序的CoreModule,并将其导入AppModule.
core.module.ts:
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { TestService } from '../test.service';
@NgModule({
imports: [
CommonModule
],
declarations: [],
providers: [
TestService
]
})
export class CoreModule { }
Run Code Online (Sandbox Code Playgroud)
test.service.ts:
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class TestService {
constructor() { console.log('testService constructor called');}
}
Run Code Online (Sandbox Code Playgroud)
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { …Run Code Online (Sandbox Code Playgroud) typescript angular-services angular-module angular angular-router
我是Java编程的新手.目前我正在研究一个名为Evercam的Android应用程序的源代码.但是,我在理解涉及while(true)循环的代码的一部分时遇到了问题.
这是代码的片段:
while (true)
{
while (true)
{
byte[] responseMessageByteArray = new byte[4000];
DatagramPacket datagramPacketRecieve = new DatagramPacket(responseMessageByteArray, responseMessageByteArray.length);
datagramSocket.receive(datagramPacketRecieve);
String responseMessage = new String(datagramPacketRecieve.getData());
EvercamDiscover.printLogMessage("\nResponse Message:\n" + responseMessage);
StringReader stringReader = new StringReader(responseMessage);
InputNode localInputNode = NodeBuilder.read(stringReader);
EnvelopeProbeMatches localEnvelopeProbeMatches = (EnvelopeProbeMatches)(new Persister()).read(EnvelopeProbeMatches.class, localInputNode);
if (localEnvelopeProbeMatches.BodyProbeMatches.ProbeMatches.listProbeMatches.size() > 0)
{
ProbeMatch localProbeMatch = (ProbeMatch) localEnvelopeProbeMatches.BodyProbeMatches.ProbeMatches.listProbeMatches.get(0);
if (uuidArrayList.contains(localProbeMatch.EndpointReference.Address))
{
EvercamDiscover.printLogMessage("ONVIFDiscovery: Address " + localProbeMatch.EndpointReference.Address + " already added");
}
else
{
uuidArrayList.add(localProbeMatch.EndpointReference.Address);
DiscoveredCamera discoveredCamera = getCameraFromProbeMatch(localProbeMatch);
if (discoveredCamera.hasValidIpv4Address())
{
this.onActiveOnvifDevice(discoveredCamera);
cameraList.add(discoveredCamera);
} …Run Code Online (Sandbox Code Playgroud) 我知道有两种方法来验证用户身份并获取access token,一种是通过托管 UI,另一种是使用各种提供的 SDK。
access token我正在寻找的是直接使用用户凭据获取的端点。
POST https://that-special-endpoint.com/login
{
username: "example@email.com",
password: "Abc123456",
...client ID, etc.
}
Run Code Online (Sandbox Code Playgroud)
我已经搜索了一段时间但找不到如何执行此操作。由于我不知道的一些安全问题,这是不可能的吗?
我确实考虑过创建 Lambda API 并使用 Cognito SDK 来满足我的用例,但我不确定这是否可取......